// Ravi's Ergodox xkb layout // Enable using: xkbcomp -xkb ergodox.xkb $DISPLAY xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { key { [ Escape ] }; // the extra key on most European keyboards key { [ less, greater, bar, brokenbar ] }; // these keys are common to all layouts key { [ backslash, bar ] }; key { [ space ] }; include "srvr_ctrl(fkey2vt)" include "pc(editing)" include "keypad(x11)" key { [ BackSpace, BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; key { [ Caps_Lock ] }; key { [ Num_Lock ] }; key { [ Shift_L ] }; key { [ Control_L ] }; key { [ Meta_L ] }; key { [ Shift_R ] }; key { [ Control_R ] }; key { [ Super_L ] }; key { [ Menu ] }; include "us" include "inet(evdev)" include "terminate(ctrl_alt_bksp)" key { [ Alt_L ] }; key { [ Hyper_L ] }; modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod1 { Meta_L }; modifier_map Mod2 { Alt_L }; modifier_map Mod3 { Hyper_L }; modifier_map Mod4 { Super_L, Super_R }; // Fake keys for virtual<->real modifiers mapping key { [ ISO_Level3_Shift ] }; key { [ Mode_switch ] }; modifier_map Mod5 { , }; key { [ NoSymbol, Meta_L ] }; modifier_map Mod1 { }; key { [ NoSymbol, Super_L ] }; modifier_map Mod4 { }; key { [ NoSymbol, Hyper_L ] }; modifier_map Mod3 { }; }; xkb_geometry { include "pc(pc104)" }; };