1. firefly
  2. dotfiles

Source

dotfiles / other / symbols

// FireFly's custom svorak (A1) variant.

// based on a keyboard map from an 'xkb/symbols/se' file
//
// $XKeyboardConfig$
// $XFree86: xc/programs/xkbcomp/symbols/se,v 1.5 2003/01/26 02:01:48 dawes Exp $

//partial hidden modifier_keys xkb_symbols "tweaks" {
//	// rebind caps to escape
////	key <caps> { [ escape,      escape     ] }; // caps:escape
////	key <esc>  { [ voidsymbol,  voidsymbol ] };
//    key <caps> { [ control_l,   control_l  ] };
//
//    replace key <caps>  {  [ control_l  ] };
//    replace key <lctl>  {  [ voidsymbol ] };
// // modifier_map  control { <caps>, <lctl> };
//
////	key <tab>  { [ escape,      escape     ] };
////	key <lctl> { [ tab,         tab        ] };
////	key <lsgt> { [ control_l,   control_l  ] };
//
//	// rebind altgr to act as ctrl, and move altgr to the right (to rwin/menu)
////	key <ralt> { [ control_r               ] };
////	key <rwin> { [ iso_level3_shift        ] };
////	key <menu> { [ iso_level3_shift        ] };
////	modifier_map control { <ralt> };
//
////	key <lctl> { [ voidsymbol              ] };
////	key <rtsh> { [ menu                    ] };
//
////	key <menu> { [ control_r,   control_r  ] }; // ctrl:menu_rctrl
//};
default partial alphanumeric_keys xkb_symbols "crazy" {
    name[Group1]="Sweden - Dvorak";

    include "se(basic)"

    key <AD01> { [     aring,      Aring,           at,           at ]	};  // U+2200 FOR ALL
    key <AD02> { [ adiaeresis, Adiaeresis,          at,           at ]	};  // U+2203 THERE EXISTS
    key <AD03> { [ odiaeresis, Odiaeresis,    EuroSign,           at ]	};
    key <AD04> { [         p,          P,           at,           at ]	};
    key <AD05> { [         y,          Y,           at,           at ]	};  // U+2286 SUBSET OF OR EQUAL TO
    key <AD06> { [         f,          F,           at,           at ]	};  // U+2287 SUPERSET OF OR EQUAL TO
    key <AD07> { [         g,          G,          jot,           at ]	}; // U+2219 BULLET OPERATOR
    key <AD08> { [         c,          C,           at,           at ]	};
    key <AD09> { [         r,          R,           at,           at ]	};
    key <AD10> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ l, L, Right ] };
    key <AD11> { [     comma,  semicolon,      radical,  dead_ogonek ]	};
    key <AD12> { [ dead_diaeresis, dead_circumflex, asciitilde, asciicircum ]	};
 // key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ]	};

// elementof, notelementof; containsas, U220C; therefore, because

    key <AC01> { [         a,          A,           ae,           AE ]	};
    key <AC02> { [         o,          O,       oslash,       Oslash ]	};
    key <AC03> { [         e,          E,          Tab,           at ]	};
    key <AC04> { [         u,          U, ISO_Left_Tab,           at ]	};
    key <AC05> { [         i,          I,     infinity,           at ]	};
    key <AC06> { [         d,          D,           at,           at ]	};
    // TODO: make sure that e.g. altgr+shift+h gets interpreted as Shift+Left
    key <AC07> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ h, H,  Left ] };
    key <AC08> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ t, T,  Down ] };
    key <AC09> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ n, N,    Up ] };
    key <AC10> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ s, S, Right ] };
    key <AC11> { [     minus, underscore, dead_belowdot, dead_macron ]	};

    key <AB01> { [    period,   colon, periodcentered, dead_abovedot ]	};
    key <AB02> { [         q,          Q,           at,      because ]	};
    key <AB03> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ j, J,  Down ] };
  //key <AB03> { [         j,          J,    elementof, notelementof ]	};
    key <AB04> { type[Group1] = "THREE_LEVEL", symbols[Group1] = [ k, K,    Up ] };
  //key <AB04> { [         k,          K,           at,           at ]	};
    key <AB05> { [         x,          X,           at,           at ]	};
    key <AB06> { [         b,          B,           at,           at ]	};
    key <AB07> { [         m,          M,           mu,           at ]	};
    key <AB08> { [         w,          W,           at,           at ]	};
    key <AB09> { [         v,          V,           at,           at ]	};
    key <AB10> { [         z,          Z,           at,           at ]	};

    replace key <CAPS>  {  [ Control_L  ] };
    replace key <LCTL>  {  [ VoidSymbol ] };

    // åäöpyfgcrl,¨  ÅÄÖPYFGCRL;^  ..........√   ..........
    // aoeuidhtns-   AOEUIDHTNS_   æø()∞.{}..    ÆØ....[]..¯
    // .qjkxbmwvz    :QJKXBMWVZ    ·.∈∋...µ...   ˙.........

// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │     │ !   │ "   │ #   │ ¤   │ %   │ &   │ /   │ (   │ )   │ =   │ ?   │ ` ¬ ┃         ┃
// │     │ 1 ¡ │ 2 @ │ 3 £ │ 4 $ │ 5   │ 6   │ 7 { │ 8 [ │ 9 ] │ 0 } │ + \ │ ´ ± ┃   BS    ┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃       ┃     │     │     │     │     │     │     │     │     │     │ ;   │ ^ ^ ┃       ┃
// ┃ Tab   ┃ å   │ ä   │ ö € │ p   │ y   │ f   │ g ∘ │ c   │ r   │ l → │ , √ │ ¨ ~ ┃       ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓  CR  ┃
// ┃ (Esc)  ┃   Æ │   Ø │  RTb│     │     │     │     │     │     │     │ _   │ * × ┃      ┃
// ┃ Ctrl_L ┃ a æ │ o ø │ e Tb│ u   │ i ∞ │ d   │ h ← │ t ↓ │ n ↑ │ s → │ -   │ '   ┃      ┃
// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
// ┃       ┃ >   │ :   │     │     │     │     │     │     │     │     │     ┃             ┃
// ┃ Shift ┃ < | │ . · │ q   │ j ↓ │ k ↑ │ x   │ b   │ m µ │ w   │ v   │ z   ┃             ┃
// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
// ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
// ┃       ┃ Mod4  ┃  Alt  ┃               Space               ┃ AltGr ┃       ┃       ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
//
//    All letter keys have their corresponding uppercase letter as their shifted
//    symbol; these have been omitted for brevity.
//
//       ┌─────┐   1: regular,
//       │ 2 4 │   2: shifted,
//       │ 1 3 │   3: altgr,
//       └─────┘   4: shift+altgr
//

};


//default partial alphanumeric_keys xkb_symbols "crazy" {
partial alphanumeric_keys xkb_symbols "crazy" {
    name[Group1]="Sweden - Dvorak";

    include "se(basic)"

    key <AE01> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE02> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE03> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE04> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE05> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE06> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE07> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE08> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE09> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };
    key <AE10> { [ VoidSymbol, VoidSymbol, VoidSymbol, VoidSymbol ] };

    key <AD01> { [     aring,      Aring,            1,           at ]	};
    key <AD02> { [ adiaeresis, Adiaeresis,           2,           at ]	};
    key <AD03> { [ odiaeresis, Odiaeresis,           3,           at ]	};
    key <AD04> { [         p,          P,            4,           at ]	};
    key <AD05> { [         y,          Y,            5,           at ]	};
    key <AD06> { [         f,          F,            6,           at ]	};
    key <AD07> { [         g,          G,            7,           at ]	};
    key <AD08> { [         c,          C,            8,           at ]	};
    key <AD09> { [         r,          R,            9,           at ]	};
    key <AD10> { [         l,          L,            0,           at ]	};
    key <AD11> { [     comma,  semicolon,      radical,  dead_ogonek ]	};
    key <AD12> { [ dead_diaeresis, dead_circumflex, asciitilde, asciicircum ]	};
 // key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ]	};

// elementof, notelementof; containsas, U220C; therefore, because

    key <AC01> { [         a,          A,       exclam,           AE ]	};
    key <AC02> { [         o,          O,     quotedbl,       Oslash ]	};
    key <AC03> { [         e,          E,   numbersign,           at ]	};
    key <AC04> { [         u,          U,     currency,           at ]	};
    key <AC05> { [         i,          I,      percent,           at ]	};
    key <AC06> { [         d,          D,    ampersand,           at ]	};
    key <AC07> { [         h,          H,        slash,  bracketleft ]	};
    key <AC08> { [         t,          T,    parenleft, bracketright ]	};
    key <AC09> { [         n,          N,   parenright,           at ]	};
    key <AC10> { [         s,          S,        equal,           at ]	};
    key <AC11> { [     minus, underscore, dead_belowdot, dead_macron ]	};

    key <AB01> { [    period,   colon, periodcentered, dead_abovedot ]	};
    key <AB02> { [         q,          Q,           at,      because ]	};
    key <AB03> { [         j,          J,     sterling, notelementof ]	};
    key <AB04> { [         k,          K,       dollar,           at ]	};
    key <AB05> { [         x,          X,   VoidSymbol,           at ]	};
    key <AB06> { [         b,          B,   VoidSymbol,           at ]	};
    key <AB07> { [         m,          M,    braceleft,           at ]	};
    key <AB08> { [         w,          W,  bracketleft,           at ]	};
    key <AB09> { [         v,          V, bracketright,           at ]	};
    key <AB10> { [         z,          Z,   braceright,           at ]	};

    replace key <CAPS>  {  [ Control_L  ] };
    replace key <LCTL>  {  [ VoidSymbol ] };

    // åäöpyfgcrl,¨  ÅÄÖPYFGCRL;^  ..........√   ..........
    // aoeuidhtns-   AOEUIDHTNS_   æø()∞.{}..    ÆØ....[]..¯
    // .qjkxbmwvz    :QJKXBMWVZ    ·.∈∋...µ...   ˙.........
};
//partial hidden modifier_keys xkb_symbols "tweaks" {
//};

partial alphanumeric_keys xkb_symbols "se-dvorak-spacecadet" {
    name[Group1]="Sweden - Dvorak";

    include "se(basic)"

    key <AD01> { [     aring,      Aring,   logicaland,        U2200 ]	};  // U+2200 FOR ALL
    key <AD02> { [ adiaeresis, Adiaeresis,   logicalor,        U2203 ]	};  // U+2203 THERE EXISTS
    key <AD03> { [ odiaeresis, Odiaeresis,       union,       uptack ]	};
    key <AD04> { [         p,          P, intersection,     downtack ]	};
    key <AD05> { [         y,          Y,   includedin,        U2286 ]	};  // U+2286 SUBSET OF OR EQUAL TO
    key <AD06> { [         f,          F,     includes,        U2287 ]	};  // U+2287 SUPERSET OF OR EQUAL TO
    key <AD07> { [         g,          G,          jot,        U2219 ]	}; // U+2219 BULLET OPERATOR
    key <AD08> { [         c,          C,           at,           at ]	};
    key <AD09> { [         r,          R,           at,           at ]	};
    key <AD10> { [         l,          L,           at,           at ]	};
    key <AD11> { [     comma,  semicolon,      radical,  dead_ogonek ]	};
    key <AD12> { [ dead_diaeresis, dead_circumflex, dead_tilde, asciicircum ]	};

// elementof, notelementof; containsas, U220C; therefore, because

    key <AC01> { [         a,          A,           ae,           AE ]	};
    key <AC02> { [         o,          O,       oslash,       Oslash ]	};
    key <AC03> { [         e,          E,           at,           at ]	};
    key <AC04> { [         u,          U,           at,           at ]	};
    key <AC05> { [         i,          I,     infinity,           at ]	};
    key <AC06> { [         d,          D,           at,           at ]	};
    key <AC07> { [         h,          H,    leftarrow,        U21D0 ]	};  // U+21D0 LEFTWARDS DOUBLE ARROW
    key <AC08> { [         t,          T,    downarrow,     ifonlyif ]	};
    key <AC09> { [         n,          N,      uparrow,        U21A6 ]	};
    key <AC10> { [         s,          S,   rightarrow,      implies ]	};
    key <AC11> { [     minus, underscore, dead_belowdot, dead_macron ]	};

    key <AB01> { [    period,   colon, periodcentered, dead_abovedot ]	};
    key <AB02> { [         q,          Q,    therefore,      because ]	};
    key <AB03> { [         j,          J,    elementof, notelementof ]	};
    key <AB04> { [         k,          K,   containsas,        U220C ]	};  // U+220C DOES NOT CONTAIN AS MEMBER
    key <AB05> { [         x,          X,        equal,     notequal ]	};
    key <AB06> { [         b,          B,    identical, notidentical ]	};
    key <AB07> { [         m,          M,         less, lessthanequal ]	};
    key <AB08> { [         w,          W,      greater, greaterthanequal ]	};
    key <AB09> { [         v,          V,     approxeq,        U2249 ]	};  // U+2249 NOT ALMOST EQUAL TO
    key <AB10> { [         z,          Z,           at,           at ]	};

    // åäöpyfgcrl,¨  ÅÄÖPYFGCRL;^  ∧∨∪∩⊂⊃ @@@√   ∀∃  ⊆⊇∙@@@
    // aoeuidhtns-   AOEUIDHTNS_   æø@@∞d←↓↑→    ÆØ@@@@⇐ ↦⇒¯
    // .qjkxbmwvz    :QJKXBMWVZ    ·∴∈∋=  <>≈@   ˙∵∉∌≠≢≤≥≉@
};

// vim:syn=xkb