2010
guadvorak
Yes, guadvorak (sic) does exist. I have been using my own customized flavor of the Dvorak keyboard layout since Fall 2008. And here it is.
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ │ ½ │ ! │ @ │ # │ $ │ % │ & │ ˇ ^ │ * │ ( │ ) │ { │ } ┃ ⌫ ┃ │ § │ 1 ¡ │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 ^ │ 8 │ 9 │ 0 │ [ │ ] ┃Backspace┃ ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ ┃ ┃ " ´ │ < ' │ > ` │ P ┌ │ Y ┐ │ F │ L Λ │ C Ç │ R │ G │ ? │ + ┃ Enter ┃ ┃ Tab ↹ ┃ ' ~ │ . ( │ . ) │ p { │ y } │ f │ l λ │ c ç │ r ® │ g │ / │ = ┃ ⏎ ┃ ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ ┃ ┃ A Ä │ O Ö │ E ° │ U Ü │ I ¿ │ D │ H │ T │ N │ S │ _ … │ | ┃ ┃ ┃ Ctrl ┃ a ä │ o ö │ e / │ u ü │ i ? │ d │ h │ t ™ │ n │ s │ - — │ \ ┃ ┃ ┣━━━━━━┳━┹───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┲━┷━━━━━┻━━━━━━┫ ┃ ┃ : │ ö Å │ Q └ │ J ┘ │ K │ X Z │ B │ M │ W │ V │ ┃ ┃ ┃Shift ┃ ; │ ä å │ q [ │ j ] │ k │ x z │ b │ m │ w │ v │Shift┃ Shift ⇧ ┃ ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴────┲┷━━━━━┷┳━━━━┻━━┳━━━━━━━┳━━━┛ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ Meta ┃ Alt ┃ Space ┃ Alt ┃ Menu ┃ Ctrl ┃ ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
Changes to the common Dvorak layout
The right Alt-key (Alt Gr in Finnish keyboards) works as the Group modifier key [1]. I use this modifier extensively. Most changes to the layout were made to enable the usage of Group 2 in the keyboard layout.
Number row considered harmful
Parens, braces and brackets are also implemented through Group 2. These changes make it way less painful to do programming since there's no need to lift your right hand from the keyboard to generate that awkward keychord on the number row.
Changes in Group 2 (roughly in order of importance)
- Question mark on letter i
- Slash on letter e
- Parentheses on comma and period keys
- Braces on p and y keys
- Brackets on q and j
- Tilde and dead tilde on apostrophe
- Dead acute and dead grave on comma and period keys
- Cedilla on c key
- Letter Ü (udiaeresis) on letter u
- Letter lambda (Λ) on l key
- Exclamation mark upside down on number 1 for fooling around on IRC
Ä's and Ö's
The letter ä (adiaeresis) is bound to the key that normally emits semicolon/colon on the Dvorak layout. The same key produces ö (odiaeresis) when pressed with Level 2 modifier (Shift on). This change seems to work since uppercase Ä and Ö are quite rare. The same approach is also taken in ArkkuDvorak [2], another modified Dvorak layout that also produces ä's and ö's. The somewhat unorthodox way of using the same key for different letters is adopted from ArkkuDvorak.
The difference from ArkkuDvorak, in this area, is that the ä key and semicolon key are swapped in guadvorak. I felt I was using the letters more than semicolons and colons, and this didn't seem like a big change, considering I had altered my layout significantly anyway.
The case of small hands and aching wrists
While coping with the RSI pain, I also noticed that the usage of right Shift key was quite impossible with my hands, without moving my wrists. The solution to this problem was converting the Z key to be an additional Shift.
X and Z
The case with X and Z is pretty much the same as with Ä and Ö. Letter Z is very rare in Finnish and I needed space for the extra Shift key. So Z ended up losing its own key. It is accessed through the Group 2 modifier on the X key.
Other changes
- Caps Lock and left Control key are swapped (I use Caps Lock to write capitalized words (NULL is a pain to type if you really touchtype and alternate the Shift.) due to Dvorak's alternation of hands)
- L and G swapped (Letter L is far more common in Finnish than the letter G. The keys on the right were very awkward to reach to when I started touchtyping and typing with the Dvorak layout. This could be a non-issue nowadays.)
- Right Control works as the Compose key (If I had figured this out earlier, I might have not implemented some of the accents on the layout...)
- Ampersand on key 6 (it is printed there on Finnish keyboards)
- Dead circumflex on key 7 (Pelo produçao as letras portuguêsas. (grammar fixes are welcome :)))
- Emdash (—) and ellipsis (…) are added to the dash/minus key
xmodmap
The layout can be loaded with xmodmap by saving the text into the file ~/.Xmodmap-guadvorak and running setxkbmap dvorak && xmodmap ~/.Xmodmap-guadvorak.
! Caps_Lock -> Control_L remove Lock = Caps_Lock remove Control = Control_L keysym Caps_Lock = Control_L keysym Control_L = Caps_Lock add Control = Control_L add Lock = Caps_Lock ! Alt Gr-key !keycode 113 = Mode_switch <-- for older X-servers keycode 108 = Mode_switch !add mod3 = Mode_switch ! Compose key keycode 105 = Multi_key ! z -> Shift_R !keysym z = Shift_R <-- doesn't work in every X-server, workarounds... keycode 61 = Shift_R add Shift = Shift_R ! l <-> g keycode 30 = l L keycode 33 = g G ! Weird Finnish letters (äöÄÖåÅ) keycode 52 = adiaeresis odiaeresis aring keycode 38 = a A Adiaeresis keycode 39 = o O Odiaeresis ! Other relevant mappings keycode 10 = 1 exclam exclamdown keycode 15 = 6 ampersand keycode 16 = 7 grave dead_circumflex keycode 24 = apostrophe quotedbl asciitilde dead_tilde keycode 25 = comma less parenleft dead_acute keycode 26 = period greater parenright dead_grave keycode 27 = p P braceleft guillemotleft keycode 28 = y Y braceright guillemotright keycode 30 = l L Greek_LAMBDA keycode 31 = c C ccedilla Ccedilla keycode 40 = e E slash eacute keycode 41 = u U Udiaeresis keycode 42 = i I question keycode 48 = minus underscore emdash ellipsis keycode 94 = semicolon colon keycode 53 = q Q bracketleft keycode 54 = j J bracketright keycode 56 = x X z
xkbmap
xmodmap of Debian testing/unstable was broken at the time of writing of this article. You should probably try out using xmodmap first.
This can be copied into the file /usr/share/X11/xkb/symbols/fi and then loaded by running setxkbmap -layout fi -variant guadvorak. You might be able to get away with something like setxkbmap -I 'pwd' -config ./guadvorak.xkb && setxkbmap -layout fi -variant guadvorak.
partial alphanumeric_keys xkb_symbols "guadvorak" { name[Group1]= "Finland - guadvorak"; include "us(dvorak)" include "level3(ralt_switch)" include "ctrl(swapcaps)" include "compose(rctrl)" key{ [ 1, exclam, exclamdown ] }; key { [ 6, ampersand ] }; key { [ 7, grave, dead_circumflex ] }; key { [ apostrophe, quotedbl, asciitilde, dead_tilde ] }; key { [ comma, less, parenleft, dead_acute ] }; key { [ period, greater, parenright, dead_grave ] }; key { [ p, P, braceleft, guillemotleft ] }; key { [ y, Y, braceright, guillemotright ] }; key { [ l, L, Greek_LAMBDA ] }; key { [ c, C, ccedilla, Ccedilla ] }; key { [ g, G ] }; key { [ a, A, adiaeresis, Adiaeresis ] }; key { [ o, O, odiaeresis, Odiaeresis ] }; key { [ e, E, slash, eacute ] }; key { [ u, U, udiaeresis, Udiaeresis ] }; key { [ i, I, question ] }; key { [ minus, underscore, emdash, ellipsis ] }; key { [ adiaeresis, odiaeresis, aring, Aring ] }; key { [ q, Q, bracketleft ] }; key { [ j, J, bracketright ] }; key { [ x, X, z, Z ] }; key { [ Shift_R, Shift_R ] }; key { [ semicolon, colon ] }; };
Windows layout
As a zip including Microsoft Keyboard Layout Creator [3]. source files.
References:
- An Unreliable Guide to XKB Configuration, An Unreliable Guide to XKB Configuration: Levels and Groups by Doug Palmer
- ArkkuDvorak, "My Dvorak keyboard layout" by Kimmo Kulovesi
- Microsoft Keyboard Layout Creator 1.4, Microsoft Download Center