Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // $XKeyboardConfig: xkeyboard-config/symbols/progsyms 2008-10-15 svu Exp $ | |
| // Difficulty to reach (under index finger: 1 - 8) | |
| // ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | |
| // ┃ ` ┊ 1 ┊ 2 ┊ 3 ┊ 4 ┊ 5 ┊ 6 ┊ 7 ┊ 8 ┊ 9 ┊ 0 ┊ - ┊ = ┊ BckSp ┃ | |
| // ┃ Tab ┊ 3 ┊ 2 ┊ 2 ┊ 3 ┊ 6 ┊ 8 ┊ 4 ┊ 2 ┊ 2 ┊ 3 ┊ 3 ┊ 5 ┊ 6 ┃ | |
| // ┃ BkSp ┊ 2 ┊ 1 ┊ 1 ┊ 1 ┊ 3 ┊ 3 ┊ 1 ┊ 1 ┊ 1 ┊ 2 ┊ 4 ┊ Enter ┃ | |
| // ┃ Shift ┊ 3 ┊ 3 ┊ 3 ┊ 3 ┊ 7 ┊ 4 ┊ 4 ┊ 4 ┊ 4 ┊ 3 ┊ Shift ┃ | |
| // ┃Fn ┊Ctrl┊Wn┊Alt┊ Space ┊Alt┊Mnu┊Ctl┊ Arrows ┃ | |
| // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | |
| // Base keyboard layout can be qwerty, colemak or whatever. Mostly this is | |
| // unimportant, though the fourth-layer greek letters are layed out to match | |
| // colemak_ds. | |
| // For the third level, the "prog*" layouts add a lot of operators, brackets, | |
| // etc. | |
| // For the fourth level, lower-case Greek letters can be added. | |
| // This is roughly colemak_ch on a ThinkPad keyboard (e.g. T410): | |
| // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ | |
| // │ ~ ⊦ │ ! ↓ │ @ ↑ │ # ↦ │ $ ¢ │ % │ ^ │ & │ * · │ ( ∉ │ ) ∌ │ _ — │ + ± ┃ ⌫ Back- ┃ | |
| // │ ` ¬ │ 1 ← │ 2 → │ 3 £ │ 4 € │ 5 ¤ │ 6 ^û│ 7 ÷ │ 8 × │ 9 ∈ │ 0 ∋ │ - − │ = ≡ ┃ space ┃ | |
| // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ | |
| // ┃ ┃ Q ≤ │ W ß │ F φ │ P π │ G γ │ J ξ │ L λ │ U θ │ Y υ │ Ä ≥ │ Ö É │ Ü È ┃ | ┃ | |
| // ┃ Tab ↹ ┃ q < │ w { │ f / │ p | │ g % │ j ^ │ l & │ u * │ y } │ ä > │ ö é │ ü è ┃ \ # ┃ | |
| // ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┻━━━━━━━┫ | |
| // ┃ Back- ⌫ ┃ A α │ R ρ │ S σ │ T τ │ D δ │ H η │ N ν │ E ε │ I ι │ O ο │ _ À ┃ ┃ | |
| // ┃ space ┃ a [ │ r ( │ s - │ t ! │ d \ │ h ≠ │ n = │ e + │ i ) │ o ] │ ' à ┃ ⏎ Enter ┃ | |
| // ┣━━━━━━━━━━┻━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┻━━━━━━━━━━━┫ | |
| // ┃ ┃ Z ζ │ X χ │ C ψ │ V ω │ B β │ K κ │ M μ │ − « │ — » │ ? ¿ ┃ ┃ | |
| // ┃Shift ⇧ ┃ z ` │ x " │ c ç │ v $ │ b 0 │ k 1 │ m 2 │ , ; │ . : │ / # ┃ ⇧ Shift ┃ | |
| // ┣━━━━━┳━━━━━━━╋━━━━┳┷━━━━┱┴─────┴─────┴─────┴─────┴─────╆━━━━━╈━━━━━╈━━━━━╋━━━━┯━━━━┯━━━━┩ | |
| // ┃ ┃ ┃ ┃ ┃ ␣ Unbreakable space ⍽ ┃ ⇮┃ ┃ ┃PgBk│↑ │PgFd│ | |
| // ┃Fn ┃Ctrl ┃Meta┃Alt ┃ ␣ Space ␣ ┃AltGr┃Menu ┃Ctrl ┠────┼────┼────┤ | |
| // ┗━━━━━┻━━━━━━━┻━━━━┻━━━━━┹──────────────────────────────┺━━━━━┻━━━━━┻━━━━━┩← │↓ │→ │ | |
| // └────┴────┴────┘ | |
| // Alternative, designed for the ErgoDox (which as no separate F-keys, hence | |
| // putting numbers on the third layer). Note that this is achieved via two | |
| // layouts: the ErgoDox config which sets the position of the F-keys, bracket | |
| // keys (here ö, ü), ` key, arrow keys, etc., and the second which sets the | |
| // third layer stuff (plus a few others). The ErgoDox layout is designed also | |
| // work with standard software mappings ("num mod" gives access to 1-9, 0 which | |
| // are the only important missing keys) and the software mapping is designed to | |
| // work on standard keyboards (though a few keys will be in different places). | |
| // ┏━━━━━━━━┱─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━┓ | |
| // ┃ ┃ ↓ │ ↑ │ ¤ │ ¢ │ ∉ │ ∌ │ │ │ │ ~│ ~│ ~│ ·┃ ⌦ ┃ | |
| // ┃ Esc ┃ F1← │ F2→ │ F3£ │ F4€ │ F5∈ │F6 ∋ │ │ F7 │ F8 │F9 7 │F10 8│F11 9│F12 ×┃ Delete ┃ | |
| // ┣━━━━━━━━╉─────┼─────┼─────┼─────┼─────╆━━━━━┪ ┢━━━━━╅─────┼─────┼─────┼─────┼─────╊━━━━━━━━┫ | |
| // ┃ ↹ ┃ ≤ │ ≥ │ φ │ π │ γ ┃ Ö É ┃ ┃ Ä ┃ ξ │ λ │ θ │ υ │ — − ┃ ⌫ ┃ | |
| // ┃ Tab ┃ q < │ w { │ f } │ p > │ g ^ ┃ ┃ ┃ ┃ j & │ l 4 │ u 5 │ y 6 │ - + ┃Backspce┃ | |
| // ┣━━━━━━━━╉─────┼─────┼─────┼─────┼─────┨ ö é ┃ ┃ ä @ ┠─────┼─────┼─────┼─────┼─────╄━━━━━━━━┩ | |
| // ┃⌫ Back- ┃ α │ ρ │ σ │ τ │ δ ┣━━━━━┫ ┣━━━━━┫ η │ ν │ ε │ ι │ ο │ _ À │ | |
| // ┃ space ┃ a [ │ r ( │ s ) │ t ] │ d | ┃ ┃ ┃ ┃ h = │ n 1 │ e 2 │ i 3 │ o % │ ' à │ | |
| // ┣━━━━━━━━╉─────┼─────┼─────┼─────┼─────┨ Ü È ┃ ┃ | ß ┠─────┼─────┼─────┼─────┼─────╆━━━━━━━━┪ | |
| // ┃ ⇧ ┃ ζ │ χ │ ψ │ ω │ β ┃ ┃ ┃ ┃ κ │ μ │ ; │ : · │ ? ÷ ┃ ⇧ ┃ | |
| // ┃ Shift ┃ z ` │ x " │ c ç │ v $ │ b ! ┃ ü è ┃ ┃ \ # ┃ k * │ m 0 │ , , │ . . │ / / ┃ Shift ┃ | |
| // ┗━━┳━━━━━╋━━━━━╈━━━━━╈━━━━━╈━━━━━╅─────┺━━━━━┛ ┗━━━━━┹─────╆━━━━━╈━━━━━╈━━━━━╈━━━━━╋━━━━━┳━━┛ | |
| // ┃ ┃ ┃ ⇤ ┃ ⇥ ┃ ┃ ┏━━━━━┳━━━━━┓ ┏━━━━━┳━━━━━┓ ┃ ⇮ ┃ ← ┃ → ┃ ┃ ┃ | |
| // ┃Ctrl ┃Meta ┃Home ┃ End ┃ Alt ┃ ┃ ┃ Num ┃ ┃ _ — ┃ + ± ┃ ┃AltGr┃Left ┃Right┃Menu ┃Ctrl ┃ | |
| // ┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛ ┃ Ins ┃ mod ┃ ┃ - − ┃ = ≠ ┃ ┗━━━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━┛ | |
| // ┏━━━━━╋━━━━━╋━━━━━┫ ┣━━━━━╋━━━━━╋━━━━━┓ | |
| // ┃ ␣ ⍽ ┃ ┃ ↑ ┃ ┃Page ┃ ┃ ␣ ⍽ ┃ | |
| // ┃ ␣ ␣ ┃ ⏎ ┃ Up ┃ ┃ Up ┃ ⏎ ┃ ␣ ␣ ┃ | |
| // ┃ ┃ ┣━━━━━┫ ┣━━━━━┫ ┃ ┃ | |
| // ┃Space┃Enter┃ ↓ ┃ ┃Page ┃Enter┃Space┃ | |
| // ┃ ┃ ┃Down ┃ ┃Down ┃ ┃ ┃ | |
| // ┗━━━━━┻━━━━━┻━━━━━┛ ┗━━━━━┻━━━━━┻━━━━━┛ | |
| // Media bindings (with AltGr): | |
| // Ins: play/pause | |
| // Back/forward: prev/next | |
| // Page up/down: volume up/down | |
| // F8: lock (XF86ScreenSaver) | |
| // F7: standby (XF86Sleep) | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| // FINAL VARIANTS — (layout variants you can pick) | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| partial default alphanumeric_keys | |
| xkb_symbols "basic" { | |
| include "latin" | |
| include "cyborg16(progsyms3)" | |
| include "cyborg16(l4_greek)" | |
| name[Group1]="US keyboard, qwerty, progsyms and greek"; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "basic_uk" { | |
| include "latin" | |
| include "cyborg16(progsyms3)" | |
| include "cyborg16(l4_greek)" | |
| name[Group1]="UK keyboard, qwerty, progsyms and greek"; | |
| key <AE02> { [ 2, at ] }; | |
| key <AE03> { [ 3, sterling ] }; | |
| key <AE04> { [ 4, dollar, EuroSign ] }; | |
| key <AC11> { [ apostrophe, quotedbl ] }; | |
| key <TLDE> { [ grave, notsign ] }; | |
| key <BKSL> { [ numbersign, asciitilde ] }; | |
| key <LSGT> { [ backslash, bar, bar, brokenbar ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak" { | |
| include "us(colemak)" | |
| include "cyborg16(progsyms3)" | |
| include "cyborg16(l4_greek)" | |
| name[Group1]="US keyboard, colemak, progsyms and greek"; | |
| key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak4" { | |
| include "us(colemak)" | |
| include "cyborg16(progsyms4)" | |
| include "cyborg16(l4_greek)" | |
| name[Group1]="US keyboard, colemak, progsyms and greek"; | |
| key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak_ds" { | |
| include "cyborg16(colemak_ch)" | |
| name[Group1]="US colemak with ä, ö, ü, å, progsyms and greek"; | |
| key <AE11> { [ NoSymbol, NoSymbol, aring, Aring ] }; | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "ch_keys" { | |
| key <BKSL> { [ NoSymbol, NoSymbol, NoSymbol, ssharp ] }; // ß | |
| key <TLDE> { [ adiaeresis, Adiaeresis, NoSymbol, NoSymbol] }; // ä Ä | |
| key <AD11> { [ odiaeresis, Odiaeresis, eacute, Eacute ] }; // ö Ö é É | |
| key <AD12> { [ udiaeresis, Udiaeresis, egrave, Egrave ] }; // ü Ü è È | |
| key <AC11> { [ NoSymbol, NoSymbol, agrave, Agrave ] }; // à À | |
| key <AB03> { [ NoSymbol, NoSymbol, ccedilla, NoSymbol] }; // Ccedilla overrides psi | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak_ch" { | |
| include "cyborg16(colemak)" | |
| include "cyborg16(ch_keys)" | |
| name[Group1]="US colemak with ä, ö, ü, progsyms and greek"; | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak4_ch" { | |
| include "cyborg16(colemak4)" | |
| include "cyborg16(ch_keys)" | |
| name[Group1]="US colemak with ä, ö, ü, progsyms and greek"; | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "workman4_ch" { | |
| include "us(workman)" | |
| include "cyborg16(progsyms4)" | |
| include "cyborg16(l4_greek)" | |
| include "cyborg16(ch_keys)" | |
| name[Group1]="US workman with ä, ö, ü, progsyms and greek"; | |
| key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak_ukch" { | |
| include "cyborg16(colemak_ch)" | |
| name[Group1]="UK keyboard, colemak, near-Swiss accented keys, and progsyms"; | |
| key <AE02> { [ 2, at ] }; | |
| key <AE03> { [ 3, sterling] }; | |
| key <AE04> { [ 4, dollar, EuroSign] }; | |
| //key <AC11> { [ apostrophe, quotedbl] }; | |
| key <TLDE> { [ grave, notsign ] }; | |
| key <BKSL> { [ numbersign, asciitilde ] }; | |
| key <LSGT> { [ backslash, bar, bar, brokenbar] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial alphanumeric_keys | |
| xkb_symbols "dvorak_uk" { | |
| include "us(dvorak)" | |
| include "cyborg16(progsyms3)" | |
| include "cyborg16(l4_greek)" | |
| name[Group1]="UK keyboard, Dvorak, progsyms and greek"; | |
| key <AE02> { [ 2, at ] }; | |
| key <AE03> { [ 3, sterling] }; | |
| key <AE04> { [ 4, dollar, EuroSign] }; | |
| key <AD01> { [ apostrophe, quotedbl] }; | |
| key <TLDE> { [ grave, notsign ] }; | |
| key <BKSL> { [ numbersign, asciitilde ] }; | |
| key <LSGT> { [ backslash, bar, bar, brokenbar ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| // LEVEL 3 — PROGRAMMING SYMBOLS | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| // Lots of useful operators and other non-letter glyphs | |
| // Layout is as in the third layer of the graphic above, except for a few | |
| // symbols in the fourth layer (overriden above). | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "progsyms3" { | |
| name[Group1]="3rd-level symbols for programmers v3"; | |
| key <TLDE> { [ NoSymbol, NoSymbol, notsign, 0x10022A6 ] }; // ¬ ⊦ | |
| key <AE01> { [ NoSymbol, NoSymbol, leftarrow, downarrow ] }; // ← ↓ | |
| key <AE02> { [ NoSymbol, NoSymbol, rightarrow, uparrow ] }; // → ↑ | |
| key <AE03> { [ NoSymbol, NoSymbol, sterling, 0x10021A6 ] }; // £ ↦ | |
| key <AE04> { [ NoSymbol, NoSymbol, EuroSign, cent ] }; // € ¢ | |
| key <AE05> { [ NoSymbol, NoSymbol, currency, 0x1002264 ] }; // ¤ ≤ | |
| key <AE06> { [ NoSymbol, NoSymbol, dead_circumflex,0x1002265 ] }; // û ≥ | |
| key <AE07> { [ NoSymbol, NoSymbol, division, NoSymbol ] }; // ÷ | |
| key <AE08> { [ NoSymbol, NoSymbol, multiply, periodcentered ] }; // × · | |
| key <AE09> { [ NoSymbol, NoSymbol, 0x1002208, 0x1002209 ] }; // ∈ ∉ | |
| key <AE10> { [ NoSymbol, NoSymbol, 0x100220B, 0x100220C ] }; // ∋ ∌ | |
| key <AE11> { [ NoSymbol, NoSymbol, 0x1002212, 0x1002014 ] }; // − — (minus, m-dash) | |
| key <AE12> { [ NoSymbol, NoSymbol, 0x1002261, plusminus ] }; // ≡ ± | |
| key <AD01> { [ NoSymbol, NoSymbol, less, 0x1002264 ] }; // < ≤ | |
| key <AD02> { [ NoSymbol, NoSymbol, braceleft, NoSymbol ] }; // { | |
| key <AD03> { [ NoSymbol, NoSymbol, slash, division ] }; // / ÷ | |
| key <AD04> { [ NoSymbol, NoSymbol, bar, NoSymbol ] }; // | | |
| key <AD05> { [ NoSymbol, NoSymbol, percent, NoSymbol ] }; // % | |
| key <AD06> { [ NoSymbol, NoSymbol, asciicircum, dead_circumflex ] }; // ^ û | |
| key <AD07> { [ NoSymbol, NoSymbol, ampersand, NoSymbol ] }; // & | |
| key <AD08> { [ NoSymbol, NoSymbol, asterisk, NoSymbol ] }; // * | |
| key <AD09> { [ NoSymbol, NoSymbol, braceright, NoSymbol ] }; // } | |
| key <AD10> { [ NoSymbol, NoSymbol, greater, 0x1002265 ] }; // > ≥ | |
| key <AD11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AD12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <BKSL> { [ backslash, bar, numbersign, brokenbar ] }; | |
| key <AC01> { [ NoSymbol, NoSymbol, bracketleft, NoSymbol ] }; // [ | |
| key <AC02> { [ NoSymbol, NoSymbol, parenleft, NoSymbol ] }; // ( | |
| key <AC03> { [ NoSymbol, NoSymbol, minus, 0x1002212 ] }; // - − | |
| key <AC04> { [ NoSymbol, NoSymbol, exclam, NoSymbol ] }; // ! | |
| key <AC05> { [ NoSymbol, NoSymbol, backslash, NoSymbol ] }; // \ | |
| key <AC06> { [ NoSymbol, NoSymbol, 0x1002260, NoSymbol ] }; // ≠ | |
| key <AC07> { [ NoSymbol, NoSymbol, equal, NoSymbol ] }; // = ≠ | |
| key <AC08> { [ NoSymbol, NoSymbol, plus, NoSymbol ] }; // + | |
| key <AC09> { [ NoSymbol, NoSymbol, parenright, NoSymbol ] }; // ) | |
| key <AC10> { [ NoSymbol, NoSymbol, bracketright, NoSymbol ] }; // ] | |
| key <AC11> { [apostrophe, underscore, NoSymbol, NoSymbol ] }; // ' _ | |
| key <AB01> { [ NoSymbol, NoSymbol, grave, NoSymbol ] }; // ` | |
| key <AB02> { [ NoSymbol, NoSymbol, quotedbl, NoSymbol ] }; // " | |
| key <AB03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // | |
| key <AB04> { [ NoSymbol, NoSymbol, dollar, NoSymbol ] }; // $ | |
| key <AB05> { [ NoSymbol, NoSymbol, 0, NoSymbol ] }; // 0 | |
| key <AB06> { [ NoSymbol, NoSymbol, 1, NoSymbol ] }; // 1 | |
| key <AB07> { [ NoSymbol, NoSymbol, 2, NoSymbol ] }; // 2 | |
| key <AB08> { [ NoSymbol, 0x1002212, semicolon, guillemotleft ] }; // − ; « | |
| key <AB09> { [ NoSymbol, 0x1002014, colon, guillemotright ] }; // — : » | |
| key <AB10> { [ NoSymbol, NoSymbol, numbersign, questiondown ] }; // # ¿ | |
| }; | |
| // Lots of useful operators and other non-letter glyphs as well as numbers | |
| // Layout mostly as shown in "ErgoDox" diagram; number keys are bound to the | |
| // same as the F-key: 1-5 to F1-F5, 6-0 to F8-F12 | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "progsyms4" { | |
| name[Group1]="3rd-level symbols for programmers v4"; | |
| key <FK01> { [ NoSymbol, NoSymbol, leftarrow, downarrow ] }; // ← ↓ | |
| key <FK02> { [ NoSymbol, NoSymbol, rightarrow, uparrow ] }; // → ↑ | |
| key <FK03> { [ NoSymbol, NoSymbol, sterling, currency ] }; // £ ¤ | |
| key <FK04> { [ NoSymbol, NoSymbol, EuroSign, cent ] }; // € ¢ | |
| key <FK05> { [ NoSymbol, NoSymbol, 0x1002208, 0x1002209 ] }; // ∈ ∉ | |
| key <FK06> { [ NoSymbol, NoSymbol, 0x100220B, 0x100220C ] }; // ∋ ∌ | |
| key <FK07> { [ NoSymbol, NoSymbol, XF86Sleep, NoSymbol ] }; // standby | |
| key <FK08> { [ NoSymbol, NoSymbol, XF86ScreenSaver,NoSymbol ] }; // lock screen | |
| key <FK09> { [ NoSymbol, NoSymbol, 7, asciitilde ] }; // 7 ~ | |
| key <FK10> { [ NoSymbol, NoSymbol, 8, asciitilde ] }; // 8 ~ | |
| key <FK11> { [ NoSymbol, NoSymbol, 9, asciitilde ] }; // 9 ~ | |
| key <FK12> { [ NoSymbol, NoSymbol, multiply, periodcentered ] }; // × · | |
| key <AE01> { [ NoSymbol, NoSymbol, leftarrow, downarrow ] }; // ← ↓ | |
| key <AE02> { [ NoSymbol, NoSymbol, rightarrow, uparrow ] }; // → ↑ | |
| key <AE03> { [ NoSymbol, NoSymbol, sterling, currency ] }; // £ ¤ | |
| key <AE04> { [ NoSymbol, NoSymbol, EuroSign, cent ] }; // € ¢ | |
| key <AE05> { [ NoSymbol, NoSymbol, 0x1002208, 0x1002209 ] }; // ∈ ∉ | |
| key <AE06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AE07> { [ NoSymbol, NoSymbol, 7, NoSymbol ] }; // & | |
| key <AE08> { [ NoSymbol, NoSymbol, 8, NoSymbol ] }; // 7 | |
| key <AE09> { [ NoSymbol, NoSymbol, 9, NoSymbol ] }; // 8 | |
| key <AE10> { [ NoSymbol, NoSymbol, multiply, NoSymbol ] }; // 9 | |
| key <TLDE> { [ NoSymbol, NoSymbol, at, NoSymbol ] }; // @ | |
| key <AE11> { [ NoSymbol, NoSymbol, 0x1002212, 0x1002014 ] }; // − — (minus, m-dash) | |
| key <AE12> { [ NoSymbol, NoSymbol, 0x1002260, plusminus ] }; // ≠ ± | |
| key <BKSL> { [ backslash, bar, numbersign, brokenbar ] }; // \ | # ¦ | |
| key <AD01> { [ NoSymbol, NoSymbol, less, 0x1002264 ] }; // < ≤ | |
| key <AD02> { [ NoSymbol, NoSymbol, braceleft, 0x1002265 ] }; // { ≥ | |
| key <AD03> { [ NoSymbol, NoSymbol, braceright, NoSymbol ] }; // } | |
| key <AD04> { [ NoSymbol, NoSymbol, greater, NoSymbol ] }; // > | |
| key <AD05> { [ NoSymbol, NoSymbol, asciicircum, dead_circumflex ] }; // ^ û | |
| key <AD06> { [ NoSymbol, NoSymbol, ampersand, NoSymbol ] }; // & | |
| key <AD07> { [ NoSymbol, NoSymbol, 4, NoSymbol ] }; // 4 | |
| key <AD08> { [ NoSymbol, NoSymbol, 5, NoSymbol ] }; // 5 | |
| key <AD09> { [ NoSymbol, NoSymbol, 6, NoSymbol ] }; // 6 | |
| key <AD10> { [ minus, 0x1002014, plus, 0x1002212 ] }; // - — + − (dash, m-dash, plus, minus) | |
| key <AD11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AD12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AC01> { [ NoSymbol, NoSymbol, bracketleft, NoSymbol ] }; // [ | |
| key <AC02> { [ NoSymbol, NoSymbol, parenleft, NoSymbol ] }; // ( | |
| key <AC03> { [ NoSymbol, NoSymbol, parenright, NoSymbol ] }; // ) | |
| key <AC04> { [ NoSymbol, NoSymbol, bracketright, NoSymbol ] }; // ] | |
| key <AC05> { [ NoSymbol, NoSymbol, bar, NoSymbol ] }; // | | |
| key <AC06> { [ NoSymbol, NoSymbol, equal, NoSymbol ] }; // - | |
| key <AC07> { [ NoSymbol, NoSymbol, 1, NoSymbol ] }; // + | |
| key <AC08> { [ NoSymbol, NoSymbol, 2, NoSymbol ] }; // 1 | |
| key <AC09> { [ NoSymbol, NoSymbol, 3, NoSymbol ] }; // 2 | |
| key <AC10> { [ NoSymbol, NoSymbol, percent, NoSymbol ] }; // 3 | |
| key <AC11> { [apostrophe, underscore, NoSymbol, NoSymbol ] }; // ' _ | |
| key <AB01> { [ NoSymbol, NoSymbol, grave, NoSymbol ] }; // ` | |
| key <AB02> { [ NoSymbol, NoSymbol, quotedbl, NoSymbol ] }; // " | |
| key <AB03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; // | |
| key <AB04> { [ NoSymbol, NoSymbol, dollar, NoSymbol ] }; // $ | |
| key <AB05> { [ NoSymbol, NoSymbol, exclam, NoSymbol ] }; // ! | |
| key <AB06> { [ NoSymbol, NoSymbol, asterisk, NoSymbol ] }; // * | |
| key <AB07> { [ NoSymbol, NoSymbol, 0, NoSymbol ] }; // 0 | |
| key <AB08> { [ NoSymbol, semicolon, comma, NoSymbol ] }; // , | |
| key <AB09> { [ NoSymbol, colon, period, periodcentered ] }; // . · | |
| key <AB10> { [ NoSymbol, NoSymbol, slash, division ] }; // / ÷ | |
| key <LSGT> { [numbersign, 0x1002014, NoSymbol, NoSymbol ] }; // # — (m-dash) | |
| }; | |
| // above with proper operators (division, multiplication and subtraction) for middle fingers, third level | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "prog_ops" { | |
| name[Group1]="3rd-level symbols for programmers (real operators)"; | |
| include "cyborg16(prog_intl)" | |
| key <AD03> { [ NoSymbol, NoSymbol, division, slash ] }; | |
| key <AD08> { [ NoSymbol, NoSymbol, multiply, asterisk ] }; | |
| key <AC03> { [ NoSymbol, NoSymbol, 0x1002212, minus ] }; | |
| }; | |
| // Greek for fourth level | |
| // Layout is based on Colemak letter positions | |
| // . ß φ π γ ξ λ θ υ . . . | |
| // α ρ σ τ δ η ν ε ι ο . | |
| // ζ χ ψ ω β κ μ . . . | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "l4_greek" { | |
| name[Group1]="4th-level Greek"; | |
| key <AD03> { [ NoSymbol, NoSymbol, NoSymbol, Greek_phi ] }; // φ | |
| key <AD04> { [ NoSymbol, NoSymbol, NoSymbol, Greek_pi ] }; // π | |
| key <AD05> { [ NoSymbol, NoSymbol, NoSymbol, Greek_gamma ] }; // γ | |
| key <AD06> { [ NoSymbol, NoSymbol, NoSymbol, Greek_xi ] }; // ξ | |
| key <AD07> { [ NoSymbol, NoSymbol, NoSymbol, Greek_lambda ] }; // λ | |
| key <AD08> { [ NoSymbol, NoSymbol, NoSymbol, Greek_theta ] }; // θ | |
| key <AD09> { [ NoSymbol, NoSymbol, NoSymbol, Greek_upsilon ] }; // υ | |
| key <AC01> { [ NoSymbol, NoSymbol, NoSymbol, Greek_alpha ] }; // α | |
| key <AC02> { [ NoSymbol, NoSymbol, NoSymbol, Greek_rho ] }; // ρ | |
| key <AC03> { [ NoSymbol, NoSymbol, NoSymbol, Greek_sigma ] }; // σ | |
| key <AC04> { [ NoSymbol, NoSymbol, NoSymbol, Greek_tau ] }; // τ | |
| key <AC05> { [ NoSymbol, NoSymbol, NoSymbol, Greek_delta ] }; // δ | |
| key <AC06> { [ NoSymbol, NoSymbol, NoSymbol, Greek_eta ] }; // η | |
| key <AC07> { [ NoSymbol, NoSymbol, NoSymbol, Greek_nu ] }; // ν | |
| key <AC08> { [ NoSymbol, NoSymbol, NoSymbol, Greek_epsilon ] }; // ε | |
| key <AC09> { [ NoSymbol, NoSymbol, NoSymbol, Greek_iota ] }; // ι | |
| key <AC10> { [ NoSymbol, NoSymbol, NoSymbol, Greek_omicron ] }; // ο | |
| key <AB01> { [ NoSymbol, NoSymbol, NoSymbol, Greek_zeta ] }; // ζ | |
| key <AB02> { [ NoSymbol, NoSymbol, NoSymbol, Greek_chi ] }; // χ | |
| key <AB03> { [ NoSymbol, NoSymbol, NoSymbol, Greek_psi ] }; // ψ | |
| key <AB04> { [ NoSymbol, NoSymbol, NoSymbol, Greek_omega ] }; // ω | |
| key <AB05> { [ NoSymbol, NoSymbol, NoSymbol, Greek_beta ] }; // β | |
| key <AB06> { [ NoSymbol, NoSymbol, NoSymbol, Greek_kappa ] }; // κ | |
| key <AB07> { [ NoSymbol, NoSymbol, NoSymbol, Greek_mu ] }; // μ | |
| }; | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| // OLD STUFF | |
| // ———————————————————————————————————————————————————————————————————————————— | |
| // Older version of above (not quite the same; no international keys). | |
| // Adds third-level symbols: // Alternative (not implemented): | |
| // < { / | \ & * } > // < { ( [ ] ) } > | |
| // [ ( - = _ : ~ + ) ] // & + * = _ ~ / - | | |
| // ` ' ! $ # ? " // ` ! $ # ? \ | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "progsyms" { | |
| name[Group1]="3rd-level symbols for programmers"; | |
| key <AD01> { [ NoSymbol, NoSymbol, less, NoSymbol ] }; | |
| key <AD02> { [ NoSymbol, NoSymbol, braceleft, NoSymbol ] }; | |
| key <AD03> { [ NoSymbol, NoSymbol, slash, NoSymbol ] }; | |
| key <AD04> { [ NoSymbol, NoSymbol, bar, NoSymbol ] }; | |
| key <AD05> { [ NoSymbol, NoSymbol, backslash, NoSymbol ] }; | |
| key <AD06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AD07> { [ NoSymbol, NoSymbol, ampersand, NoSymbol ] }; | |
| key <AD08> { [ NoSymbol, NoSymbol, asterisk, NoSymbol ] }; | |
| key <AD09> { [ NoSymbol, NoSymbol, braceright, NoSymbol ] }; | |
| key <AD10> { [ NoSymbol, NoSymbol, greater, NoSymbol ] }; | |
| key <AC01> { [ NoSymbol, NoSymbol, bracketleft, NoSymbol ] }; | |
| key <AC02> { [ NoSymbol, NoSymbol, parenleft, NoSymbol ] }; | |
| key <AC03> { [ NoSymbol, NoSymbol, minus, NoSymbol ] }; | |
| key <AC04> { [ NoSymbol, NoSymbol, equal, NoSymbol ] }; | |
| key <AC05> { [ NoSymbol, NoSymbol, underscore, NoSymbol ] }; | |
| key <AC06> { [ NoSymbol, NoSymbol, colon, NoSymbol ] }; | |
| key <AC07> { [ NoSymbol, NoSymbol, asciitilde, NoSymbol ] }; | |
| key <AC08> { [ NoSymbol, NoSymbol, plus, NoSymbol ] }; | |
| key <AC09> { [ NoSymbol, NoSymbol, parenright, NoSymbol ] }; | |
| key <AC10> { [ NoSymbol, NoSymbol, bracketright, NoSymbol ] }; | |
| key <AB01> { [ NoSymbol, NoSymbol, grave, NoSymbol ] }; | |
| key <AB02> { [ NoSymbol, NoSymbol, apostrophe, NoSymbol ] }; | |
| key <AB03> { [ NoSymbol, NoSymbol, exclam, NoSymbol ] }; | |
| key <AB04> { [ NoSymbol, NoSymbol, dollar, NoSymbol ] }; | |
| key <AB07> { [ NoSymbol, NoSymbol, numbersign, NoSymbol ] }; | |
| key <AB08> { [ NoSymbol, NoSymbol, question, NoSymbol ] }; | |
| key <AB09> { [ NoSymbol, NoSymbol, quotedbl, NoSymbol ] }; | |
| }; | |
| // These have the right hand shifted one key right, in an attempt to make the | |
| // thumb alt key easier to press. It turned out not to be a good idea. | |
| partial alphanumeric_keys | |
| xkb_symbols "colemak_shift" { | |
| include "cyborg16(gbcolemak_shift)" | |
| include "cyborg16(progsyms_shift)" | |
| name[Group1]="United Kingdom - Colemak and progsyms shifted"; | |
| key <BKSL> { [ apostrophe, quotedbl, dead_circumflex, dead_caron ] }; | |
| include "level3(ralt_switch_multikey)" | |
| }; | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "progsyms_shift" { | |
| name[Group1]="3rd-level symbols for programmers shifted"; | |
| key <AD01> { [ NoSymbol, NoSymbol, less, NoSymbol ] }; | |
| key <AD02> { [ NoSymbol, NoSymbol, braceleft, NoSymbol ] }; | |
| key <AD03> { [ NoSymbol, NoSymbol, slash, NoSymbol ] }; | |
| key <AD04> { [ NoSymbol, NoSymbol, bar, NoSymbol ] }; | |
| key <AD05> { [ NoSymbol, NoSymbol, backslash, NoSymbol ] }; | |
| key <AD06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AD07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AD08> { [ NoSymbol, NoSymbol, ampersand, NoSymbol ] }; | |
| key <AD09> { [ NoSymbol, NoSymbol, asterisk, NoSymbol ] }; | |
| key <AD10> { [ NoSymbol, NoSymbol, braceright, NoSymbol ] }; | |
| key <AD11> { [ NoSymbol, NoSymbol, greater, NoSymbol ] }; | |
| key <AC01> { [ NoSymbol, NoSymbol, bracketleft, NoSymbol ] }; | |
| key <AC02> { [ NoSymbol, NoSymbol, parenleft, NoSymbol ] }; | |
| key <AC03> { [ NoSymbol, NoSymbol, minus, NoSymbol ] }; | |
| key <AC04> { [ NoSymbol, NoSymbol, equal, NoSymbol ] }; | |
| key <AC05> { [ NoSymbol, NoSymbol, underscore, NoSymbol ] }; | |
| key <AC06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AC07> { [ NoSymbol, NoSymbol, colon, NoSymbol ] }; | |
| key <AC08> { [ NoSymbol, NoSymbol, asciitilde, NoSymbol ] }; | |
| key <AC09> { [ NoSymbol, NoSymbol, plus, NoSymbol ] }; | |
| key <AC10> { [ NoSymbol, NoSymbol, parenright, NoSymbol ] }; | |
| key <AC11> { [ NoSymbol, NoSymbol, bracketright, NoSymbol ] }; | |
| key <AB01> { [ NoSymbol, NoSymbol, grave, NoSymbol ] }; | |
| key <AB02> { [ NoSymbol, NoSymbol, apostrophe, NoSymbol ] }; | |
| key <AB03> { [ NoSymbol, NoSymbol, exclam, NoSymbol ] }; | |
| key <AB04> { [ NoSymbol, NoSymbol, dollar, NoSymbol ] }; | |
| key <AB05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AB06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AB07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
| key <AB08> { [ NoSymbol, NoSymbol, numbersign, NoSymbol ] }; | |
| key <AB09> { [ NoSymbol, NoSymbol, question, NoSymbol ] }; | |
| key <AB10> { [ NoSymbol, NoSymbol, quotedbl, NoSymbol ] }; | |
| }; | |
| // All the following were stolen from gb, with at and quotedbl swapped. | |
| partial hidden alphanumeric_keys | |
| xkb_symbols "gbcolemak_shift" { | |
| include "us" | |
| include "cyborg16(progsyms_shift)" | |
| name[Group1]="United Kingdom - Colemak shifted"; | |
| // Alphanumeric section | |
| key <TLDE> { [ grave, notsign, bar, bar ] }; | |
| key <AE01> { [ 1, exclam, exclamdown, onesuperior ] }; | |
| key <AE02> { [ 2, at, twosuperior, oneeighth ] }; | |
| key <AE03> { [ 3, sterling, threesuperior, sterling ] }; | |
| key <AE04> { [ 4, dollar, EuroSign, onequarter ] }; | |
| key <AE05> { [ 5, percent, EuroSign, yen ] }; | |
| key <AE06> { [ 6, asciicircum, hstroke, Hstroke ] }; | |
| key <AE07> { [ 7, ampersand, eth, ETH ] }; | |
| key <AE08> { [ 8, asterisk, thorn, THORN ] }; | |
| key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; | |
| key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; | |
| key <AE11> { [ minus, underscore, endash, emdash ] }; | |
| key <AE12> { [ equal, plus, multiply, division ] }; | |
| key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] }; | |
| key <AD02> { [ w, W, aring, Aring ] }; | |
| key <AD03> { [ f, F, atilde, Atilde ] }; | |
| key <AD04> { [ p, P, oslash, Ooblique ] }; | |
| key <AD05> { [ g, G, dead_ogonek, asciitilde ] }; | |
| key <AD06> { [ numbersign, asciitilde, dead_grave, dead_breve ] }; | |
| key <AD07> { [ j, J, dstroke, Dstroke ] }; | |
| key <AD08> { [ l, L, lstroke, Lstroke ] }; | |
| key <AD09> { [ u, U, uacute, Uacute ] }; | |
| key <AD10> { [ y, Y, udiaeresis, Udiaeresis ] }; | |
| key <AD11> { [ semicolon, colon, odiaeresis, Odiaeresis ] }; | |
| key <AD12> { [ slash, question, questiondown, asciitilde ] }; | |
| key <AC01> { [ a, A, aacute, Aacute ] }; | |
| key <AC02> { [ r, R, dead_grave, asciitilde ] }; | |
| key <AC03> { [ s, S, ssharp, asciitilde ] }; | |
| key <AC04> { [ t, T, dead_acute, dead_doubleacute ] }; | |
| key <AC05> { [ d, D, dead_diaeresis, asciitilde ] }; | |
| key <AC06> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; | |
| key <AC07> { [ h, H, dead_caron, asciitilde ] }; | |
| key <AC08> { [ n, N, ntilde, Ntilde ] }; | |
| key <AC09> { [ e, E, eacute, Eacute ] }; | |
| key <AC10> { [ i, I, iacute, Iacute ] }; | |
| key <AC11> { [ o, O, oacute, Oacute ] }; | |
| key <BKSL> { [ apostrophe, quotedbl, dead_circumflex,dead_caron ] }; | |
| key <LSGT> { [ backslash, bar, bar, brokenbar ] }; | |
| key <AB01> { [ z, Z, ae, AE ] }; | |
| key <AB02> { [ x, X, dead_circumflex,asciitilde ] }; | |
| key <AB03> { [ c, C, ccedilla, Ccedilla ] }; | |
| key <AB04> { [ v, V, oe, OE ] }; | |
| key <AB05> { [ b, B, dead_breve, asciitilde ] }; | |
| key <AB06> { [ bracketright,braceright, guillemotright, 0x100203a ] }; | |
| key <AB07> { [ k, K, dead_abovering, asciitilde ] }; | |
| key <AB08> { [ m, M, dead_macron, asciitilde ] }; | |
| key <AB09> { [ comma, less, dead_cedilla, asciitilde ] }; | |
| key <AB10> { [ period, greater, dead_abovedot, asciitilde ] }; | |
| key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; | |
| key <SPCE> { [ space, space, space, nobreakspace ] }; | |
| include "level3(ralt_switch)" | |
| }; |