summaryrefslogtreecommitdiff
path: root/src/SW/my-layout/document.en.rest.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/SW/my-layout/document.en.rest.txt')
-rw-r--r--src/SW/my-layout/document.en.rest.txt92
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.