mrog - Vi-key compact layout

User avatar
mrog

12 Dec 2011, 17:17

Let me preface this with the fact that I'm new to keyboard modifications and these are just my musings, looking to find out what sort of interests or other ideas there are around my concept for a compact layout. Maybe I could get the knowhow and the experience to do this myself oneday - or maybe others with similar interests could get together and make something like this a reality for us!

my main concern over current compact layouts is that they hide removed keys as a separate layer under a function key, this is all well and good - but it plays with my muscle memory - and will force me to learn new key presses that are specific to that keyboard and that keyboard only.

Now there is another keylayout that I've had drummed into my head over the years - that layout is the vi/vim keys - and I don't see why they can't be applied to this problem.

So here's my quick throw together/mock-up of what I envisage to be the perfect layout for my vi practised fingers!

See attached!

So some clarification:
The 'Vim' key replaces the Caps Lock key (I presume i'm not the only person who doesnt make use of this wasted realestate!).
The Escape key and the `¬ key are merged.
Vim-Esc is `¬
Vim-^ is Home
Vim-$ is End
Vim-b is Page Up (Ctrl-b is vim equivalent)
Vim-f is Page Down (Ctrl-f is vim equivalent)
Vim-x is Delete
Vim-i is Insert
Vim-h is Left
Vim-l is Right
Vim-j is Down
Vim-k is Up
The F keys are closed together and aligned above the rest of the keys as are the Prtsrcn/Scroll Lock/Pause Break

Ideally I would get rid of the F key row and the other special keys but I can't think of a good solution.

Obviously this layout could be worked with ANSI aswell - but I'm an ISO kind of guy.

What do people think - anywhere It could be improoved?

--edit-- another great thing is that this layout can use standard sized keycap throughout - no funny special keys!
Attachments
mrog layout-small.png
mrog layout-small.png (105.11 KiB) Viewed 3601 times

User avatar
Minskleip

12 Dec 2011, 18:22

Shift+Ins would be crap to type. Stacked modifiers are not very nice - they have to be spaced out horizontally.

User avatar
mrog

12 Dec 2011, 18:38

shift+Ins? Didn't think that combo was still in use (but I just tried it - and yeah it works in my terminal)

To be honest I hadn't really thought about it like that, Personally I rarely use the Insert key, (nor the Delete Key).

But you might be right that stacked modifiers would be difficult to press in combination - any suggestion on where might be a better location for what is effectively a fn key? I see some layouts replace either the Menu key or the right Windows Key - but I don't think this is ideal.

The Caplock key (to me at least) is a complete waste of space - never used, it felt like the right place to put the key, but you might be right about too many modifiers being stacked.

Need to find some decent use for that key though - its got such a prime location!

grasshopper

12 Dec 2011, 18:46

Why not just swap CAPS LOCK and CTRL around? It's a very common mod in the Linux/Unix world. If you're using Gnome you don't even need to mess around with creating a custom keymap because there's already an option to swap those keys built in to the keyboard preferences app.

User avatar
Minskleip

12 Dec 2011, 18:51

If it wasn't for the multiple copy buffer madness in X, I'd use shift+ins all the time!

What about having ctrl instead of caps and on bottom row have:
hyper - super - alt - space - alt - super - hyper - VIM.

Or esc or backspace instead of caps and on the bottom row:
super - alt - ctrl - space - ctrl - alt - super - VIM.

That last one would be more Windows compatible as well.

But, having VIM so far to the right would make hitting VIM + h painful, so forget about this post ;)

User avatar
Daemon Raccoon

12 Dec 2011, 19:11

I hate X copy buffers.

Another vote for having CTRL on the home row, it's how Bill Joy's (the creator of vi) ADM-3A keyboard had it.

Fun Fact:
The ADM-3A is also why HJKL is used for navigation, the arrow keys were shared with them.

JBert

12 Dec 2011, 20:43

grasshopper wrote:Why not just swap CAPS LOCK and CTRL around? It's a very common mod in the Linux/Unix world. If you're using Gnome you don't even need to mess around with creating a custom keymap because there's already an option to swap those keys built in to the keyboard preferences app.
That's exactly what I'm doing.

And I actually mapped CTRL + UNEI (in Colemak layout) to be l, gk, gj and h in ALL modes. This means I do miss out on some key combo's, but at least navigation works the same in all of the modes.

User avatar
Lustique

12 Dec 2011, 21:09

I wouldn't want my keyboard to beep repeatedly. :?

User avatar
mrog

12 Dec 2011, 22:46

Hmm I think the 'Vim' button on the far right might be a bit troublesome for hjkl as discussed, but bringing Control to the Homerow I'll think about.
Lustique wrote:I wouldn't want my keyboard to beep repeatedly. :?
What do you mean? what would cause the beeps?

User avatar
Minskleip

12 Dec 2011, 23:00

Or you can get unix keybindings.

User avatar
mrog

12 Dec 2011, 23:33

Well could use Vim-A and Vim-E as Home and End. thus removing the need for the ^ and $ keybinding from the number row - freeing it up to move the F keys onto there as the secondary function. Find a place for Print Screen and the rest and we've removed another entire row - though I don't like using something not vimish for home and end - it diverges from my original plan.

User avatar
Lustique

13 Dec 2011, 16:36

mrog wrote:Hmm I think the 'Vim' button on the far right might be a bit troublesome for hjkl as discussed, but bringing Control to the Homerow I'll think about.
Lustique wrote:I wouldn't want my keyboard to beep repeatedly. :?
What do you mean? what would cause the beeps?
I was referring to the beeps Vim makes if an error occurs, but nevermind. ;)

User avatar
hasu

14 Dec 2011, 07:18

My vim keys are semicolon and slash.

Yeah, this is not actually legitimate vi key binds.
My intention is one hand operation and keeping left hand free for beer jug!

;+(hjkl) = mouse cursor move
;+(yuio) = mouse wheel(left, down, up, right)
;+(nm space) = button2, button1, button1

/+(hjkl) = cursor move
/+(nm,.) = Home, PageDown, PageUp, End


In fact my vim keys are implemented by keyboard firmware.
But this AHK script still emulates my above key binding in a limited way.

Code: Select all

;
; cursor: prefixed by '/'
;
*/:: Send {Blind}/
/ & h:: Send {Blind}{Left}
/ & j:: Send {Blind}{Down}
/ & k:: Send {Blind}{Up}
/ & l:: Send {Blind}{Right}
/ & n:: Send {Blind}{Home}
/ & m:: Send {Blind}{PgDn}
/ & ,:: Send {Blind}{PgUp}
/ & .:: Send {Blind}{End}


;
; mouse key: prefixed by ';'
;
*SC27:: Send {Blind}{SC27}       ; semicolon

SC27 & h:: MouseMove    -15,  0, 0,R
SC27 & j:: MouseMove      0, 15, 0,R
SC27 & k:: MouseMove      0,-15, 0,R
SC27 & l:: MouseMove     15,  0, 0,R
SC27 & y:: Send {WheelLeft}
SC27 & u:: Send {WheelDown}
SC27 & i:: Send {WheelUp}
SC27 & o:: Send {WheelRight}
SC27 & Space::
    Send {Blind}{LButton down}
    KeyWait Space  ; Prevents repeating the mouse click.
    Send {Blind}{LButton up}
return
SC27 & m::
    Send {Blind}{LButton down}
    KeyWait m   ; Prevents repeating the mouse click.
    Send {Blind}{LButton up}
return
SC27 & n::
    Send {Blind}{RButton down}
    KeyWait n   ; Prevents repeating the mouse click.
    Send {Blind}{RButton up}
return

User avatar
mrog

14 Dec 2011, 10:31

Bows down
Wow! that's basicly what I want to achieve, How have you your own firmware for your keyboard? I have two plans.

Either a. replace entire controller board, or b. create an adapter in the middle (ps/2 to usb maybe).

personally I'm leaning towards doing a. as it could be more interesting and will force me to learn more about keyboards.

b. would be more portable though - I could move the advanced ability from one keyboard to the next.

Ultimatly though I would like to design my own keyboard layout such that I see the guys doing with the Phantom boards.

Anyway I've got a couple of these:
http://minimususb.com/

Ordered, they should be suitable for either project.

User avatar
hasu

14 Dec 2011, 15:08

My daily driver board is HHKB replaced stock controller with Teensy.
And I occasionally type on old time keyboards with DIY converter just for delight.
I can have the vim keys in both way :)

HHKB mod: http://geekhack.org/showwiki.php?title=Island:12047
PS/2 converter: http://geekhack.org/showwiki.php?title=Island:14618
ADB converter: http://geekhack.org/showwiki.php?title=Island:14290

Post Reply

Return to “Keyboards”