2 // see http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
4 // xkb keymap prepared by Oleg Kostyuk <cub@cub.org.ua>
5 // copyright 2012, bsd license
8 // to use, copy to /usr/share/X11/xkb/symbols/workman and add the following
9 // lines to /usr/share/X11/xkb/symbols.dir:
11 // -dp----- a------- workman(wkm)
12 // --p----- a------- workman(wcp)
13 // --p----- a------- workman(wco)
14 // --p----- a------- workman(wdp)
16 // then load with, e.g.
18 // setxkbmap workman # default layout
19 // setxkbmap -layout workman -variant wdp # to select other variants
23 partial alphanumeric_keys
26 name[Group1] = "The Workman Keyboard Layout";
29 include "latin(nodeadkeys)"
31 name[Group1] = "QFMLWY - full optimization, QWERTY lettermask";
33 // Unmodified Shift AltGr Shift+AltGr
34 key <AD01> { [ q, Q, at, Greek_OMEGA ] };
35 key <AD02> { [ d, D, dstroke, ordfeminine ] };
36 key <AD03> { [ r, R, mu, masculine ] };
37 key <AD04> { [ w, W, lstroke, Lstroke ] };
38 key <AD05> { [ b, B, lstroke, Lstroke ] };
39 key <AD06> { [ j, J, leftarrow, yen ] };
40 key <AD07> { [ f, F, downarrow, uparrow ] };
41 key <AD08> { [ u, U, oslash, Ooblique ] };
42 key <AD09> { [ p, P, rightdoublequotemark, rightsinglequotemark ] };
43 key <AD10> { [ semicolon, colon, rightdoublequotemark, rightsinglequotemark ] };
45 // Unmodified Shift AltGr Shift+AltGr
46 key <AC01> { [ a, A, eth, ETH ] };
47 key <AC02> { [ s, S, ssharp, section ] };
48 key <AC03> { [ h, H, tslash, Tslash ] };
49 key <AC04> { [ t, T ] };
50 key <AC05> { [ g, G, paragraph, registered ] };
51 key <AC06> { [ y, Y, rightarrow, idotless ] };
52 key <AC07> { [ n, N, ae, AE ] };
53 key <AC08> { [ e, E, EuroSign ] };
54 key <AC09> { [ o, O, hstroke, Hstroke ] };
55 key <AC10> { [ i, I, hstroke, Hstroke ] };
57 // Unmodified Shift AltGr Shift+AltGr
58 key <AB01> { [ z, Z, guillemotleft, less ] };
59 key <AB02> { [ x, X, leftdoublequotemark, leftsinglequotemark ] };
60 key <AB03> { [ m, M, eng, ENG ] };
61 key <AB04> { [ c, C, cent, copyright ] };
62 key <AB05> { [ v, V, guillemotright, greater ] };
63 key <AB06> { [ k, K, thorn, THORN ] };
64 key <AB07> { [ l, L, kra, ampersand ] };
69 partial alphanumeric_keys
72 include "workman(wkm)"
74 name[Group1] = "Workman for Programmers, with light modifications from cub@uanic (old)";
76 // Unmodified Shift AltGr Shift+AltGr
77 // symbols row, left side
78 key <TLDE> { [ asciitilde, grave, dead_grave ] };
79 key <AE01> { [ exclam, 1, exclamdown ] };
80 key <AE02> { [ braceleft, 2, currency ] };
81 key <AE03> { [ numbersign, 3, cent ] };
82 key <AE04> { [ semicolon, 4, yen ] };
83 key <AE05> { [ braceright, 5, EuroSign ] };
84 key <AE06> { [ bracketleft, 6, sterling ] };
86 // symbols row, right side
87 key <AE07> { [ ampersand, 7 ] };
88 key <AE08> { [ asterisk, 8, onehalf ] };
89 key <AE09> { [ parenleft, 9 ] };
90 key <AE10> { [ parenright, 0 ] };
91 key <AE11> { [ bracketright, percent ] };
92 key <AE12> { [ equal, plus ] };
93 key <BKSP> { [ BackSpace ] };
95 // upper row, right side
96 key <AD10> { [ dollar, at, dead_acute, dead_doubleacute ] };
97 key <AD11> { [ colon, asciicircum, dead_circumflex, dead_caron ] };
98 key <AD12> { [ apostrophe, quotedbl ] };
100 // home row, right side
101 key <AC11> { [ minus, underscore, hyphen ] };
103 // lower row, left side
104 key <LSGT> { [ greater, less, bar, brokenbar ] };
108 partial alphanumeric_keys
111 include "workman(wco)"
113 name[Group1] = "Workman for Programmers, with light modifications from cub@uanic";
115 // Unmodified Shift AltGr Shift+AltGr
116 // symbols row, left side
117 key <AE01> { [ semicolon, 1, exclamdown ] };
118 key <AE02> { [ exclam, 2, currency ] };
119 key <AE04> { [ braceleft, 4, yen ] };
121 // symbols row, right side
122 key <AE07> { [ bracketright, 7 ] };
123 key <AE11> { [ ampersand, percent ] };
127 partial alphanumeric_keys
130 include "workman(wcp)"
132 name[Group1] = "Workman for Programmers, with light modifications from cub@uanic, for Ergodox";
134 // Unmodified Shift AltGr Shift+AltGr
135 key <BKSL> { [ apostrophe, quotedbl ] };
136 key <AE11> { [ asciicircum, backslash ] };
137 key <AD11> { [ colon, percent ] };
138 key <AC11> { [ minus, underscore, hyphen ] };
139 key <AD12> { [ bar, ampersand ] };
143 partial alphanumeric_keys
146 include "workman(wkm)"
148 name[Group1] = "Workman for Programmers, with modifications from Dvorak for programmers";
150 // Unmodified Shift AltGr Shift+AltGr
151 // symbols row, left side
152 key <TLDE> { [ asciitilde, grave, dead_grave ] };
153 key <AE01> { [ semicolon, ampersand ] };
154 key <AE02> { [ bracketleft, 7, currency ] };
155 key <AE03> { [ braceleft, 5, cent ] };
156 key <AE04> { [ braceright, 3, yen ] };
157 key <AE05> { [ parenleft, 1, EuroSign ] };
158 key <AE06> { [ equal, 9, sterling ] };
160 // symbols row, right side
161 key <AE07> { [ asterisk, 0 ] };
162 key <AE08> { [ parenright, 2, onehalf ] };
163 key <AE09> { [ plus, 4 ] };
164 key <AE10> { [ bracketright, 6 ] };
165 key <AE11> { [ percent, 8 ] };
166 key <AE12> { [ exclam, numbersign, exclamdown ] };
167 key <BKSP> { [ BackSpace ] };
169 // upper row, right side
170 key <AD10> { [ dollar, at, dead_acute, dead_doubleacute ] };
171 key <AD11> { [ colon, asciicircum, dead_circumflex, dead_caron ] };
172 key <AD12> { [ apostrophe, quotedbl ] };
174 // home row, right side
175 key <AC11> { [ minus, underscore, hyphen ] };
177 // lower row, left side
178 key <LSGT> { [ greater, less, bar, brokenbar ] };