Author Topic: Turn ANY Keyboard into a HHKB2  (Read 4723 times)

0 Members and 1 Guest are viewing this topic.

Offline itlnstln

  • Thread Starter
  • Posts: 7048
Turn ANY Keyboard into a HHKB2
« on: Fri, 05 June 2009, 13:44:44 »
Very cool.  Excellent work, Ripster.


Offline bigpook

  • Posts: 1723
Turn ANY Keyboard into a HHKB2
« Reply #1 on: Fri, 05 June 2009, 13:59:37 »
nice, I made a half hearted effort to make this work in linux. I am sure it can be done, but not by me : (
If anyone running linux can make this happen, let me know.

props to ripster for making this happen on the windows side.
HHKB Pro 2 : Unicomp Spacesaver : IBM Model M : DasIII    

Offline wheel83

  • Posts: 189
Turn ANY Keyboard into a HHKB2
« Reply #2 on: Fri, 05 June 2009, 14:31:25 »
good job, i just tried it and i kept hitting enter or backspace instead of the hhkb backspace. i doubt ill ever get an hhkb because i make too many mistakes.  i do however want a realforce 87 again.
« Last Edit: Fri, 05 June 2009, 14:33:28 by wheel83 »
I <3 BS

Offline lowpoly

  • Posts: 1749
Turn ANY Keyboard into a HHKB2
« Reply #3 on: Fri, 05 June 2009, 19:43:22 »
Chloe had a hhkb script for autohotkey.

I wish she'd come back.

Miniguru thread at GH // The Apple M0110 Today

Offline bigpook

  • Posts: 1723
Turn ANY Keyboard into a HHKB2
« Reply #4 on: Fri, 05 June 2009, 21:33:19 »
It takes a bit to get used to using the Fn key to get page up/down | arrow keys |home and end. But when you do, and you will, you will find it hard to go back to a regular keyboard.
Thats the first thing that annoys me the most; when I have to move my hand to get to the arrow keys. The HHKB really spoils you with this.
HHKB Pro 2 : Unicomp Spacesaver : IBM Model M : DasIII    

Offline skriefal

  • Posts: 235
  • Location: Utah, USA
Turn ANY Keyboard into a HHKB2
« Reply #5 on: Tue, 11 August 2009, 00:30:56 »
I was able to get the backspace/delete mapping to work with the following:

;Backspace becomes Del
Backspace::\
>^Backspace::Send {Delete}

Using 'Send' seems to be necessary to make this work.  Also note that I added the greater-than sign to explicity tell the script to use only the right CTRL key as the function key.  The left CTRL key is still available for its usual purpose.  I added the greater-than sign to all lines that add "Fn key" bindings, because I always use the right-side function key with my HHKB.

Other oddities are that the remapped PgUp (ctrl + l) and PgDn (ctrl + .) didn't work with Firefox -- but did work with IE8.  I added the 'Send {...}' to those and they now work in both Firefox and IE8.  The remapped Home/End, however, work fine without the 'Send' command.  Also, the remapped F1-F12 keys don't work at all -- with or without the Send command, and with or without the > to force the right CTRL key.  Anyone else had that problem?

Perhaps some of this is due to Windows 7...
« Last Edit: Tue, 11 August 2009, 00:36:05 by skriefal »

Offline Rajagra

  • Posts: 1930
Turn ANY Keyboard into a HHKB2
« Reply #6 on: Tue, 11 August 2009, 02:50:54 »
I mainly use Send because it allows me to "calculate" which modifier keys need to be tagged on. As I understand it, the Backspace::\ format is a one-time thing, so won't let me do that.

I'm no AHK expert. I need a lot of trial and error to get things working, and some of the help file just confuses me (I can't get my head around why "traditional IF" statements are treated differently to, erm..., whatever the other kind of IF statement is.)

Did you try the HHKB script I posted in another thread? It was basically your script, but running inside my script so it could use the function calls.

EDIT> I noticed that this kind of script can have problems on keyboards without N-key rollover. My script handles use of both Ctrl keys at once, but if the keyboard can't send combinations like LCtrl-RCtrl-; then it can't move left a word at a time for example.
« Last Edit: Tue, 11 August 2009, 03:08:12 by Rajagra »

Offline nanu

  • Posts: 290
    • http://T-T.be/portal
Turn ANY Keyboard into a HHKB2
« Reply #7 on: Tue, 11 August 2009, 07:17:02 »
Quote from: Rajagra;108827
I can't get my head around why "traditional IF" statements are treated differently to, erm..., whatever the other kind of IF statement is.


There's a sizeable faction of users against that other kind of IFs; Supposedly all you have to do is enclose the stuff inside parens and it goes back to working intuitively:
Code: [Select]
if x == y becomes
Code: [Select]
if (x == y)

I tend to only use the first form for simpler checks, like for the return value of a function call.

Offline DreymaR

  • Posts: 184
  • Location: Norway
  • Colemak forum guy
    • DreymaR's Big Bag of Kbd Tricks
Turn ANY Keyboard into a HHKB2
« Reply #8 on: Tue, 11 August 2009, 08:11:25 »
I dislike the arrow key placement, for one. Why are fairly useless keys placed right under your home position and the row above it?

At the PKL thread on the AHK forum I've described the extend layout I use (with PKL). I'm very happy with that one - except that I wanted an extra Ctrl key under my left ring finger but some kind of rollover or ghosting or other problem shot that to hell. Still works well enough under the middle finger though.
Better burden you cannot carry than man-wisdom much ~ Hávamál

Offline skriefal

  • Posts: 235
  • Location: Utah, USA
Turn ANY Keyboard into a HHKB2
« Reply #9 on: Tue, 11 August 2009, 22:55:11 »
Quote from: Rajagra;108827
Did you try the HHKB script I posted in another thread? It was basically your script, but running inside my script so it could use the function calls.

I tried this script but encountered lots of problems.  The up/down arrow key combinations, for example, would  sometimes insert extra spaces after moving the cursor.  Pressing the left shift key also seemed to insert space characters.  But the F4 key worked. :smile:

My tweaked version of Ripster's script doesn't support the Fn+Num combinations to produce F1-F12, but otherwise works fine when typing at low speed.  When typing at moderate or high speed, however, it'll occasionally insert an extra space character.  That seems to happen most frequently when typing "HHKB", oddly enough.  I'm using a Realforce 87u for this testing.

I'll switch back to my real HHKB now... :smile:

Offline AndrewZorn

  • Posts: 1086
Turn ANY Keyboard into a HHKB2
« Reply #10 on: Wed, 07 October 2009, 17:42:02 »
I was just going to change it around a bit, but ended up completely rewriting this.
Got too used to my HHKB already and trying to hit Backspace on the Filco wasn't working.  I can still use all the extended keys (as in, normal keys on a 104 board), just needed the middle part to work the same for my own personal use.

Mine is to simulate the full HHKB, with left <> as Fn (use left thumb for Fn, way easier than left or right pinky) (in addition to Mac mode and with backspace, but it seems these are assumed).



As in, everything is in the right SPOT, not labelled correctly.  The keys beside the spacebar are <>, not Alt.  Mac Mode on the real HHKB and my script makes the right Alt an AltGr, even though this isn't shown even by PFU.

Took me forever, and I still don't understand many concepts.  For some reason, CapsLock won't go OFF.  This is after it took me a while to get it to work in the first place.  Look at all those Send{}s!  I don't know why it needs them, but it does.

Grave is also messed up (EDIT: ONLY ON COLEMAK), spits out two at a time every other press.

Pause does not work (EDIT: seems fine now... but how can I test it?) because of the crap I had to go through because of AutoHotKey's apparent issue with Colemak, you can see me working around it with SC027.  It seems to define keys based on the CURRENT LAYOUT, not the actual keys, which is problematic, etc.

EDIT so down to one issue when using QWERTY... the Caps Lock.  Everything else seems fine.  Need to fix the Colemak version...

EDIT: huge issue though... I can't seem to combine a Fn+? keypress with another.  Like doing Alt+F4 on a real HHKB, I'd do Fn+Alt+4, but that doesn't work here.  Not sure if this is the way I wrote this or AutoHotKey.


QWERTY
Code: [Select]
; HHKB Pro2 emulation by AndrewZorn
; for use with QWERTY
;  with DIP in position 011100
;  (Mac Mode, Backspace, Left Fn)
;
; inspired by and based on ripster's
;
; &quot;Insert&quot; becomes `/~ because Backspace is too big
; &quot;Right Ctrl&quot; becomes Fn
; this is for ANSI keyboard

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

SC029::Esc
CapsLock::LCtrl
\::Backspace
Backspace::\
Insert::`

; Fix Alt/<> keys
LWin::Alt
LAlt::Send {nothinglol}
RWin::RAlt
RAlt::RWin
RCtrl::Send {nothinglol}

; For the sake of accuracy
LCtrl::Send {nothinglol}
SC15D::Send {nothinglol}

; Left Fn key (why does everything need Send{}?)
LAlt & 1::Send {F1}
LAlt & 2::Send {F2}
LAlt & 3::Send {F3}
LAlt & 4::Send {F4}
LAlt & 5::Send {F5}
LAlt & 6::Send {F6}
LAlt & 7::Send {F7}
LAlt & 8::Send {F8}
LAlt & 9::Send {F9}
LAlt & 0::Send {F10}
LAlt & -::Send {F11}
LAlt & =::Send {F12}
LAlt & Backspace::Send {Insert} ; not sure Insert even works right on my HHKB
LAlt & Insert::Send {Del}
LAlt & Tab::Send {CapsLock}
LAlt & h::Send {*}
LAlt & j::Send {/}
LAlt & n::Send {+}
LAlt & m::Send {-}
LAlt & k::Send {Home}
LAlt & ,::Send {End}
LAlt & l::Send {PgUp}
LAlt & .::Send {PgDn}
LAlt & [::Send {Up}
LAlt & SC027::Send {Left}
LAlt & '::Send {Right}
LAlt & /::Send {Down}
LAlt & i::Send {PrintScreen}
LAlt & o::Send {ScrollLock}
LAlt & p::Send {Pause}

; Right Fn key (REPEATED FROM ABOVE, notice I can't figure out custom modifiers)
RCtrl & 1::Send {F1}
RCtrl & 2::Send {F2}
RCtrl & 3::Send {F3}
RCtrl & 4::Send {F4}
RCtrl & 5::Send {F5}
RCtrl & 6::Send {F6}
RCtrl & 7::Send {F7}
RCtrl & 8::Send {F8}
RCtrl & 9::Send {F9}
RCtrl & 0::Send {F10}
RCtrl & -::Send {F11}
RCtrl & =::Send {F12}
RCtrl & Backspace::Send {Insert} ; not sure Insert even works right on my HHKB
RCtrl & Insert::Send {Del}
RCtrl & Tab::Send {CapsLock}
RCtrl & h::Send {*}
RCtrl & j::Send {/}
RCtrl & n::Send {+}
RCtrl & m::Send {-}
RCtrl & k::Send {Home}
RCtrl & ,::Send {End}
RCtrl & l::Send {PgUp}
RCtrl & .::Send {PgDn}
RCtrl & [::Send {Up}
RCtrl & SC027::Send {Left}
RCtrl & '::Send {Right}
RCtrl & /::Send {Down}
RCtrl & i::Send {PrintScreen}
RCtrl & o::Send {ScrollLock}
RCtrl & p::Send {Pause}


Colemak
Code: [Select]
; HHKB Pro2 emulation by AndrewZorn
; for use with COLEMAK
;  with DIP in position 011100
;  (Mac Mode, Backspace, Left Fn)
;
; inspired by and based on ripster's
;
; "Insert" becomes `/~ because Backspace is too big
; "Right Ctrl" becomes Fn
; this is for ANSI keyboard

#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%

SC029::Esc
CapsLock::LCtrl
\::Backspace
Backspace::\
Insert::` ; ` not working right, sends in doubles only

; Fix Alt/<> keys
LWin::Alt
LAlt::Send {nothinglol}
RWin::RAlt
RAlt::RWin
RCtrl::Send {nothinglol}

; For the sake of accuracy
LCtrl::Send {nothinglol}
SC15D::Send {nothinglol}

; Left Fn key (why does everything need Send{}?)
LAlt & 1::Send {F1}
LAlt & 2::Send {F2}
LAlt & 3::Send {F3}
LAlt & 4::Send {F4}
LAlt & 5::Send {F5}
LAlt & 6::Send {F6}
LAlt & 7::Send {F7}
LAlt & 8::Send {F8}
LAlt & 9::Send {F9}
LAlt & 0::Send {F10}
LAlt & -::Send {F11}
LAlt & =::Send {F12}
LAlt & Backspace::Send {Insert} ; not sure Insert even works right on my HHKB
LAlt & Insert::Send {Del}
LAlt & Tab::Send {CapsLock}
LAlt & h::Send {*}
LAlt & n::Send {/}
LAlt & k::Send {+}
LAlt & m::Send {-}
LAlt & e::Send {Home}
LAlt & ,::Send {End}
LAlt & i::Send {PgUp}
LAlt & .::Send {PgDn}
LAlt & [::Send {Up}
LAlt & o::Send {Left}
LAlt & '::Send {Right}
LAlt & /::Send {Down}
LAlt & u::Send {PrintScreen}
LAlt & y::Send {ScrollLock}
LAlt & SC027::Send {Pause}

; Right Fn key (REPEATED FROM ABOVE, notice I can't figure out custom modifiers)
RCtrl & 1::Send {F1}
RCtrl & 2::Send {F2}
RCtrl & 3::Send {F3}
RCtrl & 4::Send {F4}
RCtrl & 5::Send {F5}
RCtrl & 6::Send {F6}
RCtrl & 7::Send {F7}
RCtrl & 8::Send {F8}
RCtrl & 9::Send {F9}
RCtrl & 0::Send {F10}
RCtrl & -::Send {F11}
RCtrl & =::Send {F12}
RCtrl & Backspace::Send {Insert} ; not sure Insert even works right on my HHKB
RCtrl & Insert::Send {Del}
RCtrl & Tab::Send {CapsLock}
RCtrl & h::Send {*}
RCtrl & n::Send {/}
RCtrl & k::Send {+}
RCtrl & m::Send {-}
RCtrl & e::Send {Home}
RCtrl & ,::Send {End}
RCtrl & i::Send {PgUp}
RCtrl & .::Send {PgDn}
RCtrl & [::Send {Up}
RCtrl & o::Send {Left}
RCtrl & '::Send {Right}
RCtrl & /::Send {Down}
RCtrl & u::Send {PrintScreen}
RCtrl & y::Send {ScrollLock}
RCtrl & SC027::Send {Pause}
« Last Edit: Wed, 07 October 2009, 18:44:21 by AndrewZorn »

Offline Rajagra

  • Posts: 1930
Turn ANY Keyboard into a HHKB2
« Reply #11 on: Thu, 08 October 2009, 02:51:52 »
Quote from: AndrewZorn;123773
so down to one issue when using QWERTY... the Caps Lock.  Everything else seems fine.  Need to fix the Colemak version...

huge issue though... I can't seem to combine a Fn+? keypress with another.  Like doing Alt+F4 on a real HHKB, I'd do Fn+Alt+4, but that doesn't work here.  Not sure if this is the way I wrote this or AutoHotKey.

I had problems with CapsLock too. One advantage I had was that some Logitech software I have loaded flashes up a huge onscreen message when any lock status changes. You'd be amazed how often it flashes CapsLock on/off while using AHK.

Re combining keypresses, this could be down to lack of n-key rollover. Try using Aqua'S Key Test to see if the combinations you are trying are even registered.

Offline AndrewZorn

  • Posts: 1086
Turn ANY Keyboard into a HHKB2
« Reply #12 on: Thu, 08 October 2009, 03:07:15 »
i was thinking that, but Alt+Win+4?  i mean, i dont know about windows, but Alt is a modifier that should be outside the minimum 2 i am asking for.

ill get it back out and try again later today.

i just dont get why caps works fine on ripster's... we used pretty much the same thing.

Offline GenEric35

  • Posts: 121
Turn ANY Keyboard into a HHKB2
« Reply #13 on: Tue, 10 November 2009, 12:28:46 »
I tried the the AutoHotkey.txt and the 1 to 3 keys don't produce F1 to F3
This is on windows xp
Another thing i'm trying to fix is to use the Context Menu key instead of the control keys as the Fn modifier, but can't find this Context Menu (the value to use in script) from the documentation
« Last Edit: Tue, 10 November 2009, 12:40:52 by GenEric35 »
:target: HHKB Pro 2  
IBM Model M 1390131
Unicomp Customizer

Offline GenEric35

  • Posts: 121
Turn ANY Keyboard into a HHKB2
« Reply #14 on: Tue, 10 November 2009, 16:15:52 »
Quote from: ripster;131516
Not sure if you're running mine or Andrew's.  The Context Menu key is called AppsKey in Autohotkey.

I'm using a customized variation of Raj's script these days here.

Yes! I just tried this new one and it works well.
Really good work there, thanks alot
:target: HHKB Pro 2  
IBM Model M 1390131
Unicomp Customizer

Offline AndrewZorn

  • Posts: 1086
Turn ANY Keyboard into a HHKB2
« Reply #15 on: Tue, 10 November 2009, 16:42:10 »
he has some more advanced stuff going on there that i need to look into to improve mine

by the way, WAS it mine that didnt work with F1-3?  works for me...

Offline GenEric35

  • Posts: 121
Turn ANY Keyboard into a HHKB2
« Reply #16 on: Tue, 10 November 2009, 17:16:08 »
Quote from: AndrewZorn;131570
he has some more advanced stuff going on there that i need to look into to improve mine

by the way, WAS it mine that d'idnt work with F1-3?  works for me...


that was with the script linked in the first post, the other ones i have tried in this thread worked fine for me
:target: HHKB Pro 2  
IBM Model M 1390131
Unicomp Customizer

Offline AndrewZorn

  • Posts: 1086
Turn ANY Keyboard into a HHKB2
« Reply #17 on: Mon, 16 November 2009, 10:33:17 »
is autohotkey the best solution for a 'permanent' (dont need to be able to quickly turn it on and off) setup?

i see all this about sharpkeys, and keymapper, and what about portable keyboard layout, and all this other stuff and i cannot wrap my head around the best way to deal with my fixation on the HHKB layout

its like, why even have all these keyboards if they are going to function so half-assedly when i apply the autohotkey script

Offline AndrewZorn

  • Posts: 1086
Turn ANY Keyboard into a HHKB2
« Reply #18 on: Mon, 16 November 2009, 10:49:42 »
alright im going to begin using / working on rajagras script

Turn ANY Keyboard into a HHKB2
« Reply #19 on: Sun, 07 February 2010, 07:25:21 »
This is the physical layout of the main cluster on my Model M.
There are no Windows type keys between ALT and CTR(l).

Code: [Select]
+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BSPC|
+--++-++-++-++-++-++-++-++-++-++-++-++-++---+
|TAB|q |w |e |r |t |y |u |i |o |p |[ |] |\  |
+---++-++-++-++-++-++-++-++-++-++-++-++-+---+
|CAPS|a |s |d |f |g |h |j |k |l |; |' |ENTER|
+----++-++-++-++-++-++-++-++-++-++-++-+-----+
|SHIFT|z |x |c |v |b |n |m |, |. |/ |SHIFT  |
+---+-+-+---+--+--+--+--+--+--++-+-++---+---+
|CTR|   |ALT|                  |ALT|    |CTR|
+---+   +---+------------------+---+    +---+


There are a couple of things I want to achieve:

* I need to add one "Super" key to interact with the window manager; I
  use the ScrollLock at the moment and it's too far off the main
  cluster.

* I want another modifier to "overlay" at least the basic cursor
  movement functions and escape. When I'm doing that I might as well
  add the function keys too.

* I suspect that for basic motion keys at least, it's preferable to
  use one hand for the overlay key and the other for the cursor
  movement. I think I'd also prefer an inverted T layout for the
  movement keys; this means I don't want to just copy the Happy
  Hacking layout. I also want to use my right hand for cursor
  movement, so WASD isn't right for me either.

* CAPS must be CTR. I don't need a CAPS key anyway.

So far, the following basic layout looks like a good idea:

Code: [Select]
+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |BSPC|
+--++-++-++-++-++-++-++-++-++-++-++-++-++---+
|TAB|q |w |e |r |t |y |u |i |o |p |[ |] |\  |
+---++-++-++-++-++-++-++-++-++-++-++-++-+---+
|CTR |a |s |d |f |g |h |j |k |l |; |' |ENTER|
+----++-++-++-++-++-++-++-++-++-++-++-+-----+
|SHIFT|z |x |c |v |b |n |m |, |. |/ |SHIFT  |
+---+-+-+---+--+--+--+--+--+--++-+-++---+---+
|MOD|   |ALT|                  |ALT|    |SUP|
+---+   +---+------------------+---+    +---+


With the following MOD map:

Code: [Select]
+--+--+--+--+--+--+--+--+--+--+--+--+--+----+
|ES|f1|f2|f3|f4|f5|f6|f7|f8|f9|f0|f1|f2|DEL |
+--++-++-++-++-++-++-++-++-++-++-++-++-++---+
|TAB|  |  |  |  |  |  |  |HO|EN|^ |PU|PD|INS|
+---++-++-++-++-++-++-++-++-++-++-++-++-+---+
|CTR |  |  |  |  |  |  |  |  |< |v |> |ENTER|
+----++-++-++-++-++-++-++-++-++-++-++-+-----+
|SHIFT|  |  |  |  |  |  |  |  |  |  |SHIFT  |
+---+-+-+---+--+--+--+--+--+--++-+-++---+---+
|XXX|   |ALT|                  |ALT|    |SUP|
+---+   +---+------------------+---+    +---+


Below us the input file for xmodmap (that's unix).

Code: [Select]

! modifiers
clear Lock
clear Control
clear Mod4
keycode 66 = Control_L
keycode 105 = Super_R
keycode 37 = Mode_switch

add Control = Control_L
add Mod4 = Super_R

! top row
keycode  49 = grave asciitilde Escape
keycode 10 = 1 exclam F1
keycode 11 = 2 at F2
keycode 12 = 3 numbersign F3
keycode 13 = 4 dollar F4
keycode 14 = 5 percent F5
keycode 15 = 6 asciicircum F6
keycode 16 = 7 ampersand F7
keycode 17 = 8 asterisk F8
keycode 18 = 9 parenleft F9
keycode 19 = 0 parenright F10
keycode 20 = minus underscore F11
keycode 21 = equal plus F12
keycode 22 = BackSpace NoSymbol Delete NoSymbol

! second row
keycode 31 = i I Home
keycode 32 = o O End
keycode 33 = p P Up
keycode 34 = bracketleft braceleft Prior
keycode 35 = bracketright braceright Next
keycode 51 = backslash bar Insert

! home row
keycode 46 = l L Left
keycode 47 = semicolon colon Down
keycode 48 = apostrophe quotedbl Right


I'm using it today, and it appears to work fairly well, except that escape is too hard to type now. It'd probably work nicer if the CTRL keys weren't all the way in the corners, too.
Current collection: HHKB Pro 2 black on black, HHKB Pro 2 white/grey blank, [strike]Dell AT101W[/strike] (sold to SirClickAlot), 1992 Model M, Key Tronic Ergoforce KT 2001, BTC 5100 C. Dead boards: MS Natural Elite, MS Natural 4000.

Offline DreymaR

  • Posts: 184
  • Location: Norway
  • Colemak forum guy
    • DreymaR's Big Bag of Kbd Tricks
Turn ANY Keyboard into a HHKB2
« Reply #20 on: Tue, 09 February 2010, 06:23:25 »
Code: [Select]
; These keys are modified/transposed by holding down the 'extend key' (CapsLock by default):
;+------+------+------+------+------+------+------+------+------+------+------+------+------+
;|Esc + |F1 <> |F2 << |F3 >> |F4 <> |F5 <> |F6 << |F7 >> |F8 <> |F9 <> |F10<> |F11<> |F12<> |
;| Caps | Play | Prev | Next | Stop | Mute | Vol- | Vol+ | Media| BrHom| Mail | App1 | App2 |
;+======+======+======+======+======+======+======+======+======+======+======+======+======+
;|` ¤¤¤ |1     |2     |3     |4     |5     |6     |7     |8     |9     |0     |-     |=     |
;| Del  | F1   | F2   | F3   | F4   | F5   | F6   | F7   | F8   | F9   | F10  | F11  | F12  |
;+------+------+------+------+------+------+------+------+------+------+------+------+------+
;|Tab   |Q ¤¤¤ |W *** |F <<> |P <>> |G *** |J ### |L ### |U ### |Y ### |; ¤¤¤ |[ ¤¤¤ |] ¤¤¤ |
;|      | Esc  | *WhUp| BrBck| BrFwd| *Btn1| PgUp | Home | Up   | End  | Del  | Esc  | Ins  |
;+------+------+------+------+------+------+------+------+------+------+------+------+------+
;|Caps+ |A +++ |R *** |S +++ |T +++ |D *** |H ### |N ### |E ### |I ### |O ¤¤¤ |' ¤¤¤ |\ ><> |
;| ++++ | Alt  | *WhDn| Shift| Ctrl | *Up17| PgDn | Left | Down | Right| Back | Apps | BrFav|
;+------+------+------+------+------+------+------+------+------+------+------+------+------+
;|Z ¤¤¤ |X === |C === |V === |B *** |_ *** |K *** |M *** |, *** |. *** |/ *** |Spc ¤ |Entr¤ |
;| Undo | Cut  | Copy | Paste| *Le17| *Dn17| *Ri17| *Btn3| *WhLe| *WhRi| *Btn2| Enter| Break|
;+------+------+------+------+------+------+------+------+------+------+------+-------------+
;Legend: # Movement; + Modifiers; = GUI edit; * Mouse; <> MultiMedia; ¤ Various commands.


I still prefer mine.



Now that I'm experimenting with a wider layout for ergonomy, there will be small changes but nothing dramatic. As it is, I don't use the keys that are far from the home position much anyway - which is as it should be.

The reason the WheelUp/Dn keys are lodged in the middle of the modifiers is that most keyboards' scan matrix put the CapsLock key on the same column as 'R' and so it won't work as an Extend key modifier (I had Ctrl in mind but had to move that to the 'T' key instead).

I use this every day. A lot.
« Last Edit: Tue, 09 February 2010, 06:26:18 by DreymaR »
Better burden you cannot carry than man-wisdom much ~ Hávamál

Turn ANY Keyboard into a HHKB2
« Reply #21 on: Tue, 09 February 2010, 14:48:27 »
Quote from: DreymaR;157229
Now that I'm experimenting with a wider layout for ergonomy, there will be small changes but nothing dramatic. As it is, I don't use the keys that are far from the home position much anyway - which is as it should be.

Yeah, I'm thinking of moving the cursor block further to the left (probably with the LEFT key on J). I also suspect that having Home/End and Pageup/down stacked diagonally will work a little better.

By the way, it looks like the layout in the ASCII graph is slightly different from the picture; looks like you're using the traditional TAB key as the modfier, but also as backspace?
« Last Edit: Tue, 09 February 2010, 14:55:54 by Superfluous Parentheses »
Current collection: HHKB Pro 2 black on black, HHKB Pro 2 white/grey blank, [strike]Dell AT101W[/strike] (sold to SirClickAlot), 1992 Model M, Key Tronic Ergoforce KT 2001, BTC 5100 C. Dead boards: MS Natural Elite, MS Natural 4000.

Offline DreymaR

  • Posts: 184
  • Location: Norway
  • Colemak forum guy
    • DreymaR's Big Bag of Kbd Tricks
Turn ANY Keyboard into a HHKB2
« Reply #22 on: Wed, 10 February 2010, 02:48:34 »
Ah, the non-letter markings: No, I don't use that key as a backspace at all. Thing is, I made a Colemak graphic and that layout has the CapsLock mapped as a Backspace key. I don't do that but use it exclusively as an Extend key in PKL. I don't know a good symbol for the Extend key (I think that back in the day when it existed it was just marked in text). Sorry if I confused anyone. Nothing's done to the Tab key though - it needs to be left unmapped or you'll run into trouble with Alt-tabbing and suchlike (in PKL at least).

The nav block I use (PgUp/PgDn to the left, arrow keys on QWERTY IJKL, Home/End above the cross; and in addition, Backspace/Del to the right of that block) is very similar to the default PKL one, which again is used in colemak.vim and some other places. So it's nearly a standard by now in 'enlightened circles'. The right-hand Esc button on the '[' key doesn't see much use but it's there for compatibility with Vim, the Microsoft layouts (that have it as a Ctrl+[ mapping) and other oldies but goodies. I nearly always hit Caps+Q for my Esc needs, which is fast and one-handed and close to the home position.
« Last Edit: Wed, 10 February 2010, 02:52:47 by DreymaR »
Better burden you cannot carry than man-wisdom much ~ Hávamál