YourLabs.org


Dvorak-intl-code

After upgrading Ubuntu, I had to redo my custom dvorak layout.

To enable it, the only way I’ve found is to add the layout to /usr/share/X11/xkb/us.

Then you can enable it through a GUI, or with command:

setxkbmap us dvorak-intl-code

It is optimized for multilinguists and hackers:

// Dvorak international with dead keys and optimisations for code
// Olivier Mehani (shtrom-xorg@ssji.net) & James Pic
// Reproduce the per-key mapping of us(intl) for the dvorak layout
// aka "I just swapped my keys over"
// Symbols and numbers swapped for code
// colon and semi colon swapped for vim
partial alphanumeric_keys
xkb_symbols "dvorak-intl-code" {

    name[Group1]= "English (Dvorak international with dead keys)";

    include "us(dvorak)"

    key <TLDE> { [dead_grave, dead_tilde,         grave,       asciitilde ] };

    key <AE01> { [     exclam,     1,    exclamdown,      onesuperior ] };
    key <AE02> { [         at,     2,   twosuperior, dead_doubleacute ] };
    key <AE03> { [ numbersign,     3, threesuperior,      dead_macron ] };
    key <AE04> { [     dollar,     4,      currency,         sterling ] };
    key <AE05> { [    percent,     5,      EuroSign,     dead_cedilla ] };
    key <AE06> { [asciicircum,     6,    onequarter,  dead_circumflex ] };
    key <AE07> { [  ampersand,     7,       onehalf,    dead_horn ] };
    key <AE08> { [   asterisk,     8, threequarters,      dead_ogonek ] };
    key <AE09> { [  parenleft,     9, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ parenright,     0, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft,  braceleft,  guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [ apostrophe,        quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [     comma,       less,      ccedilla,         Ccedilla ] };
    key <AD03> { [    period,    greater, dead_abovedot,       dead_caron ] };
    key <AD04> { [     p,          P,    odiaeresis,       Odiaeresis ] };
    key <AD05> { [     y,          Y,    udiaeresis,       Udiaeresis ] };
    // key <AD06> { [      f,   F       ]   };
    // key <AD07> { [      g,   G       ]   };
    key <AD08> { [     c,          C,     copyright,             cent ] };
    key <AD09> { [     r,          R,    registered,       registered ] };
    key <AD10> { [     l,          L,        oslash,         Ooblique ] };
    key <AD11> { [     slash,   question,  questiondown,        dead_hook ] };
    // key <AD12> { [     equal,       plus,      multiply,         division ] };

    key <AC01> { [     a,          A,        aacute,           Aacute ] };
    key <AC02> { [     o,          O,        oacute,           Oacute ] };
    key <AC03> { [     e,          E,        eacute,           Eacute ] };
    key <AC04> { [     u,          U,        uacute,           Uacute ] };
    key <AC05> { [     i,          I,        iacute,           Iacute ] };
    key <AC06> { [     d,          D,           eth,              ETH ] };
    // key <AC07> { [      h,   H       ]   };
    key <AC08> { [     t,          T,         thorn,            THORN ] };
    key <AC09> { [     n,          N,        ntilde,           Ntilde ] };
    key <AC10> { [     s,          S,        ssharp,          section ] };
    // key <AC11> { [     minus, underscore,           yen,    dead_belowdot ] };

    key <AB01> { [      colon, semicolon,     paragraph,           degree ] };
    key <AB02> { [     q,          Q,    adiaeresis,       Adiaeresis ] };
    // key <AB03> { [      j,   J       ]   };
    key <AB04> { [     k,          K,            oe,               OE ] };
    // key <AB05> { [      x,   X       ]   };
    // key <AB06> { [      b,   B       ]   };
    key <AB07> { [     m,          M,            mu,               mu ] };
    key <AB08> { [     w,          W,         aring,            Aring ] };
    // key <AB09> { [      v,   V       ]   };
    key <AB10> { [     z,          Z,            ae,               AE ] };

    key <BKSL> { [ backslash,        bar,       notsign,        brokenbar ] };

    include "level3(ralt_switch)"
};