diff options
Diffstat (limited to 'src/SW/my-layout/document.en.rest.txt')
-rw-r--r-- | src/SW/my-layout/document.en.rest.txt | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/src/SW/my-layout/document.en.rest.txt b/src/SW/my-layout/document.en.rest.txt new file mode 100644 index 0000000..2c90144 --- /dev/null +++ b/src/SW/my-layout/document.en.rest.txt @@ -0,0 +1,92 @@ +==================== + My keyboard layout +==================== +:CreationDate: 2009-09-15 13:20:11 +:Id: SW/my-layout +:tags: - keyboard + - configs + +I use a `Dvorak layout +<http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard>`_, on an +`Apple Aluminum Keyboard (A1243) +<http://en.wikipedia.org/wiki/Apple_Keyboard#Apple_Keyboard>`_, on a +Gentoo Linux PC. + +I could *mostly* do with the `xorg`-provided dvorak layout, by putting +this in my ``/etc/hal/fdi/policy/10-x11-input.fdi`` file:: + + <match key="input.product" string="Apple, Inc Apple Keyboard"> + <merge key="input.x11_options.XkbLayout" type="string">us</merge> + <merge key="input.x11_options.XkbModel" type="string">evdev</merge> + <merge key="input.x11_options.XkbVariant" type="string">dvorak</merge> + </match> + +but a few keys were wrong: the "tilde" and "section" keys were +swapped, the "fn" key was not recognized, and most function keys did +not work. + +For the "fn" key, I had to `write a bit of code +<../xf86-input-evdev/>`_, but for the rest I only had to configure +`XKB` properly. + +Now my `HAL` policy file contains:: + + <match key="input.product" string="Apple, Inc Apple Keyboard"> + <merge key="input.x11_options.XkbLayout" type="string">dakkar</merge> + <merge key="input.x11_options.XkbModel" type="string">evdev</merge> + <merge key="input.x11_options.XkbVariant" type="string">dvorak-apple-al</merge> + <merge key="input.x11_options.event_key_remap" type="string">464=118 120=210 204=211</merge> + </match> + +and I have a ``/usr/share/X11/xkb/symbols/dakkar`` file with:: + + default partial alphanumeric_keys + xkb_symbols "dvorak-apple-al" { + + name[Group1] = "USA Dvorak Apple Aluminium keyboard"; + + include "us(dvorak)" + + key <TLDE> { [ quoteleft, asciitilde ] }; + + key <LSGT> { [ section, plusminus ] }; + + key <I232> { [ XF86MonBrightnessDown, F1, F1, XF86_Switch_VT_1 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I233> { [ XF86MonBrightnessUp, F2, F2, XF86_Switch_VT_2 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I210> { [ XF86Launch3, F3, F3, XF86_Switch_VT_3 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I211> { [ XF86Launch4, F4, F4, XF86_Switch_VT_4 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I237> { [ XF86KbdBrightnessDown, F5, F5, XF86_Switch_VT_5 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I238> { [ XF86KbdBrightnessUp, F6, F6, XF86_Switch_VT_6 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I173> { [ XF86AudioPrev, F7, F7, XF86_Switch_VT_7 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I172> { [ XF86AudioPlay, F8, F8, XF86_Switch_VT_8 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <I171> { [ XF86AudioNext, F9, F9, XF86_Switch_VT_9 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <MUTO> { [ XF86AudioMute, F10, F10, XF86_Switch_VT_10 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <VOL-> { [ XF86AudioLowerVolume, F11, F11, XF86_Switch_VT_11 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <VOL+> { [ XF86AudioRaiseVolume, F12, F12, XF86_Switch_VT_12 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK13> { [ F13, F13, F13, F13 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK14> { [ F14, F14, F14, F14 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK15> { [ F15, F15, F15, F15 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK16> { [ F16, F16, F16, F16 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK17> { [ F17, F17, F17, F17 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK18> { [ F18, F18, F18, F18 ] , type[Group1] = "FOUR_LEVEL_X" }; + key <FK19> { [ F19, F19, F19, F19 ] , type[Group1] = "FOUR_LEVEL_X" }; + + key <INS> { [ ISO_Level3_Shift, Insert ] }; + }; + +The first two ``key`` lines swap "tilde" and "section", the rest are +more interesting. You see, on this keyboard (on a Mac, at least) "F1" +… "F18" are reached in combination with the "fn" key, and the primary +function of those keys is to be shortcuts for programs (like Exposé or +Dashboard) or commands (change screen brightness, playing track, +volume). So I made it work the same on X11. The ``FOUR_LEVEL_X`` type +defines a key that has 4 possible symbols: on its own, with +``LevelThree``, with ``Shift+LevelThree``, and with ``Control+Alt``; +since I map the "ins" (really, "fn") key to ``ISO_Level3_Shift``, I +can access the function keys in combination with "fn", I can access +the command keys on their own, and (quite important) I can still +switch to the text consoles ``:-)``. + +Oh, and ``Shift+Fn`` actually produces ``Shift+Insert``, so I can +paste from the primary selection into my terminals without reaching +for the mouse. |