This update is mainly needed because Ergodox's layout should be as much possible closer to original QWERTY layout, to not break XKB layout in XOrg for Russian language. Also, because Ergodox's switches SW5.7 and SW5.8 are not as convenient as I'd like to - additional mappings were added on Layer7 for following symbols: ^ ' " \
180 lines
8.9 KiB
Text
180 lines
8.9 KiB
Text
// workman layouts
|
|
// see http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
|
|
|
|
// xkb keymap prepared by Oleg Kostyuk <cub@cub.org.ua>
|
|
// 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 <AD01> { [ q, Q, at, Greek_OMEGA ] };
|
|
key <AD02> { [ d, D, dstroke, ordfeminine ] };
|
|
key <AD03> { [ r, R, mu, masculine ] };
|
|
key <AD04> { [ w, W, lstroke, Lstroke ] };
|
|
key <AD05> { [ b, B, lstroke, Lstroke ] };
|
|
key <AD06> { [ j, J, leftarrow, yen ] };
|
|
key <AD07> { [ f, F, downarrow, uparrow ] };
|
|
key <AD08> { [ u, U, oslash, Ooblique ] };
|
|
key <AD09> { [ p, P, rightdoublequotemark, rightsinglequotemark ] };
|
|
key <AD10> { [ semicolon, colon, rightdoublequotemark, rightsinglequotemark ] };
|
|
|
|
// Unmodified Shift AltGr Shift+AltGr
|
|
key <AC01> { [ a, A, eth, ETH ] };
|
|
key <AC02> { [ s, S, ssharp, section ] };
|
|
key <AC03> { [ h, H, tslash, Tslash ] };
|
|
key <AC04> { [ t, T ] };
|
|
key <AC05> { [ g, G, paragraph, registered ] };
|
|
key <AC06> { [ y, Y, rightarrow, idotless ] };
|
|
key <AC07> { [ n, N, ae, AE ] };
|
|
key <AC08> { [ e, E, EuroSign ] };
|
|
key <AC09> { [ o, O, hstroke, Hstroke ] };
|
|
key <AC10> { [ i, I, hstroke, Hstroke ] };
|
|
|
|
// Unmodified Shift AltGr Shift+AltGr
|
|
key <AB01> { [ z, Z, guillemotleft, less ] };
|
|
key <AB02> { [ x, X, leftdoublequotemark, leftsinglequotemark ] };
|
|
key <AB03> { [ m, M, eng, ENG ] };
|
|
key <AB04> { [ c, C, cent, copyright ] };
|
|
key <AB05> { [ v, V, guillemotright, greater ] };
|
|
key <AB06> { [ k, K, thorn, THORN ] };
|
|
key <AB07> { [ 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 <TLDE> { [ asciitilde, grave, dead_grave ] };
|
|
key <AE01> { [ exclam, 1, exclamdown ] };
|
|
key <AE02> { [ braceleft, 2, currency ] };
|
|
key <AE03> { [ numbersign, 3, cent ] };
|
|
key <AE04> { [ semicolon, 4, yen ] };
|
|
key <AE05> { [ braceright, 5, EuroSign ] };
|
|
key <AE06> { [ bracketleft, 6, sterling ] };
|
|
|
|
// symbols row, right side
|
|
key <AE07> { [ ampersand, 7 ] };
|
|
key <AE08> { [ asterisk, 8, onehalf ] };
|
|
key <AE09> { [ parenleft, 9 ] };
|
|
key <AE10> { [ parenright, 0 ] };
|
|
key <AE11> { [ bracketright, percent ] };
|
|
key <AE12> { [ equal, plus ] };
|
|
key <BKSP> { [ BackSpace ] };
|
|
|
|
// upper row, right side
|
|
key <AD10> { [ dollar, at, dead_acute, dead_doubleacute ] };
|
|
key <AD11> { [ colon, asciicircum, dead_circumflex, dead_caron ] };
|
|
key <AD12> { [ apostrophe, quotedbl ] };
|
|
|
|
// home row, right side
|
|
key <AC11> { [ minus, underscore, hyphen ] };
|
|
|
|
// lower row, left side
|
|
key <LSGT> { [ 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 <AE01> { [ semicolon, 1, exclamdown ] };
|
|
key <AE02> { [ exclam, 2, currency ] };
|
|
key <AE04> { [ braceleft, 4, yen ] };
|
|
|
|
// symbols row, right side
|
|
key <AE07> { [ bracketright, 7 ] };
|
|
key <AE11> { [ 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 <BKSL> { [ apostrophe, quotedbl ] };
|
|
key <AE11> { [ asciicircum, backslash ] };
|
|
key <AD11> { [ colon, percent ] };
|
|
key <AC11> { [ minus, underscore, hyphen ] };
|
|
key <AD12> { [ 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 <TLDE> { [ asciitilde, grave, dead_grave ] };
|
|
key <AE01> { [ semicolon, ampersand ] };
|
|
key <AE02> { [ bracketleft, 7, currency ] };
|
|
key <AE03> { [ braceleft, 5, cent ] };
|
|
key <AE04> { [ braceright, 3, yen ] };
|
|
key <AE05> { [ parenleft, 1, EuroSign ] };
|
|
key <AE06> { [ equal, 9, sterling ] };
|
|
|
|
// symbols row, right side
|
|
key <AE07> { [ asterisk, 0 ] };
|
|
key <AE08> { [ parenright, 2, onehalf ] };
|
|
key <AE09> { [ plus, 4 ] };
|
|
key <AE10> { [ bracketright, 6 ] };
|
|
key <AE11> { [ percent, 8 ] };
|
|
key <AE12> { [ exclam, numbersign, exclamdown ] };
|
|
key <BKSP> { [ BackSpace ] };
|
|
|
|
// upper row, right side
|
|
key <AD10> { [ dollar, at, dead_acute, dead_doubleacute ] };
|
|
key <AD11> { [ colon, asciicircum, dead_circumflex, dead_caron ] };
|
|
key <AD12> { [ apostrophe, quotedbl ] };
|
|
|
|
// home row, right side
|
|
key <AC11> { [ minus, underscore, hyphen ] };
|
|
|
|
// lower row, left side
|
|
key <LSGT> { [ greater, less, bar, brokenbar ] };
|
|
};
|
|
|