// workman layouts // see http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/ // xkb keymap prepared by Oleg Kostyuk // copyright 2012, bsd license // to use, copy to /usr/share/X11/xkb/symbols/workman and add the following // lines to /usr/share/X11/xkb/symbols.dir: // // -dp----- a------- workman(wkm) // --p----- a------- workman(wcp) // --p----- a------- workman(wco) // --p----- a------- workman(wdp) // // then load with, e.g. // // setxkbmap workman # default layout // setxkbmap -layout workman -variant wdp # to select other variants default partial alphanumeric_keys xkb_symbols "wkm" { name[Group1] = "The Workman Keyboard Layout"; include "latin" include "latin(nodeadkeys)" name[Group1] = "QFMLWY - full optimization, QWERTY lettermask"; // Unmodified Shift AltGr Shift+AltGr key { [ q, Q, at, Greek_OMEGA ] }; key { [ d, D, dstroke, ordfeminine ] }; key { [ r, R, mu, masculine ] }; key { [ w, W, lstroke, Lstroke ] }; key { [ b, B, lstroke, Lstroke ] }; key { [ j, J, leftarrow, yen ] }; key { [ f, F, downarrow, uparrow ] }; key { [ u, U, oslash, Ooblique ] }; key { [ p, P, rightdoublequotemark, rightsinglequotemark ] }; key { [ semicolon, colon, rightdoublequotemark, rightsinglequotemark ] }; // Unmodified Shift AltGr Shift+AltGr key { [ a, A, eth, ETH ] }; key { [ s, S, ssharp, section ] }; key { [ h, H, tslash, Tslash ] }; key { [ t, T ] }; key { [ g, G, paragraph, registered ] }; key { [ y, Y, rightarrow, idotless ] }; key { [ n, N, ae, AE ] }; key { [ e, E, EuroSign ] }; key { [ o, O, hstroke, Hstroke ] }; key { [ i, I, hstroke, Hstroke ] }; // Unmodified Shift AltGr Shift+AltGr key { [ z, Z, guillemotleft, less ] }; key { [ x, X, leftdoublequotemark, leftsinglequotemark ] }; key { [ m, M, eng, ENG ] }; key { [ c, C, cent, copyright ] }; key { [ v, V, guillemotright, greater ] }; key { [ k, K, thorn, THORN ] }; key { [ l, L, kra, ampersand ] }; }; partial alphanumeric_keys xkb_symbols "wco" { include "workman(wkm)" name[Group1] = "Workman for Programmers, with light modifications from cub@uanic (old)"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side key { [ asciitilde, grave, dead_grave ] }; key { [ exclam, 1, exclamdown ] }; key { [ braceleft, 2, currency ] }; key { [ numbersign, 3, cent ] }; key { [ semicolon, 4, yen ] }; key { [ braceright, 5, EuroSign ] }; key { [ bracketleft, 6, sterling ] }; // symbols row, right side key { [ ampersand, 7 ] }; key { [ asterisk, 8, onehalf ] }; key { [ parenleft, 9 ] }; key { [ parenright, 0 ] }; key { [ bracketright, percent ] }; key { [ equal, plus ] }; key { [ BackSpace ] }; // upper row, right side key { [ dollar, at, dead_acute, dead_doubleacute ] }; key { [ colon, asciicircum, dead_circumflex, dead_caron ] }; key { [ apostrophe, quotedbl ] }; // home row, right side key { [ minus, underscore, hyphen ] }; // lower row, left side key { [ greater, less, bar, brokenbar ] }; }; partial alphanumeric_keys xkb_symbols "wcp" { include "workman(wco)" name[Group1] = "Workman for Programmers, with light modifications from cub@uanic"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side key { [ semicolon, 1, exclamdown ] }; key { [ exclam, 2, currency ] }; key { [ braceleft, 4, yen ] }; // symbols row, right side key { [ bracketright, 7 ] }; key { [ ampersand, percent ] }; }; partial alphanumeric_keys xkb_symbols "wce" { include "workman(wcp)" name[Group1] = "Workman for Programmers, with light modifications from cub@uanic, for Ergodox"; // Unmodified Shift AltGr Shift+AltGr key { [ apostrophe, quotedbl ] }; key { [ asciicircum, backslash ] }; key { [ colon, percent ] }; key { [ minus, underscore, hyphen ] }; key { [ bar, ampersand ] }; }; partial alphanumeric_keys xkb_symbols "wdp" { include "workman(wkm)" name[Group1] = "Workman for Programmers, with modifications from Dvorak for programmers"; // Unmodified Shift AltGr Shift+AltGr // symbols row, left side key { [ asciitilde, grave, dead_grave ] }; key { [ semicolon, ampersand ] }; key { [ bracketleft, 7, currency ] }; key { [ braceleft, 5, cent ] }; key { [ braceright, 3, yen ] }; key { [ parenleft, 1, EuroSign ] }; key { [ equal, 9, sterling ] }; // symbols row, right side key { [ asterisk, 0 ] }; key { [ parenright, 2, onehalf ] }; key { [ plus, 4 ] }; key { [ bracketright, 6 ] }; key { [ percent, 8 ] }; key { [ exclam, numbersign, exclamdown ] }; key { [ BackSpace ] }; // upper row, right side key { [ dollar, at, dead_acute, dead_doubleacute ] }; key { [ colon, asciicircum, dead_circumflex, dead_caron ] }; key { [ apostrophe, quotedbl ] }; // home row, right side key { [ minus, underscore, hyphen ] }; // lower row, left side key { [ greater, less, bar, brokenbar ] }; };