summaryrefslogtreecommitdiff
path: root/src/SW/my-layout/document.en.rest.txt
blob: be12df23f4dbec2c2ec32b90de6b6e3d6bdc6299 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
====================
 My keyboard layout
====================
:CreationDate: 2009-09-15 13:20:11
:Id: SW/my-layout
:tags: - keyboard
       - configs
 
I use a `Dvorak layout
<https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard>`_, on an
`Apple Aluminum Keyboard (A1243)
<https://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 ``xorg.conf`` file::
 
  Section "InputClass"
   Identifier "keyboard-generic"
   Driver "evdev"
   Option "XkbOptions" "compose:ralt,altwin:meta_win,terminate:ctrl_alt_bksp"
   Option "XkbLayout"  "us"
   Option "XkbModel"   "evdev"
   Option "XkbVariant" "dvorak"
  
   MatchIsKeyboard "on"
  EndSection
 
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 ``xorg.conf`` file contains::
 
  Section "InputClass"
   Identifier "keyboard-generic"
   Driver "evdev"
   Option "XkbOptions" "compose:ralt,altwin:meta_win,terminate:ctrl_alt_bksp"
  
   MatchIsKeyboard "on"
  EndSection
  
  Section "InputClass"
   Identifier "keyboard-apple-alu"
   Driver "evdev"
   Option "XkbLayout"  "dakkar"
   Option "XkbModel"   "applealu_iso"
   Option "XkbVariant" "dvorak-apple-al"
   Option "event_key_remap" "464=118 120=210 204=211"
  
   MatchIsKeyboard "on"
   MatchProduct    "Apple, Inc Apple Keyboard"
  EndSection
 
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.