From jakanaka-evangel, 6 Months ago, written in Plain Text.
This paste will go to its last resting place in 1 Second.
Embed
  1. The following command runs in .xinitrc:
  2.  
  3. xkbcomp en-us.xkbdump "$DISPLAY" 2&> /dev/null
  4.  
  5. the en-us.xkbdump file is a dump of the default US mappings
  6. with my edits, which:
  7.  
  8. switches caps-lock and escape,
  9. maps control and menu keys to alt-gr
  10. maps the < key next to the left shift to control
  11.  
  12. the xkbdump file follows:
  13.  
  14. xkb_keymap {
  15. xkb_keycodes "evdev+aliases(qwerty)" {
  16.     minimum = 8;
  17.     maximum = 255;
  18.      <ESC> = 9;
  19.     <AE01> = 10;
  20.     <AE02> = 11;
  21.     <AE03> = 12;
  22.     <AE04> = 13;
  23.     <AE05> = 14;
  24.     <AE06> = 15;
  25.     <AE07> = 16;
  26.     <AE08> = 17;
  27.     <AE09> = 18;
  28.     <AE10> = 19;
  29.     <AE11> = 20;
  30.     <AE12> = 21;
  31.     <BKSP> = 22;
  32.      <TAB> = 23;
  33.     <AD01> = 24;
  34.     <AD02> = 25;
  35.     <AD03> = 26;
  36.     <AD04> = 27;
  37.     <AD05> = 28;
  38.     <AD06> = 29;
  39.     <AD07> = 30;
  40.     <AD08> = 31;
  41.     <AD09> = 32;
  42.     <AD10> = 33;
  43.     <AD11> = 34;
  44.     <AD12> = 35;
  45.     <RTRN> = 36;
  46.     <LCTL> = 37;
  47.     <AC01> = 38;
  48.     <AC02> = 39;
  49.     <AC03> = 40;
  50.     <AC04> = 41;
  51.     <AC05> = 42;
  52.     <AC06> = 43;
  53.     <AC07> = 44;
  54.     <AC08> = 45;
  55.     <AC09> = 46;
  56.     <AC10> = 47;
  57.     <AC11> = 48;
  58.     <TLDE> = 49;
  59.     <LFSH> = 50;
  60.     <BKSL> = 51;
  61.     <AB01> = 52;
  62.     <AB02> = 53;
  63.     <AB03> = 54;
  64.     <AB04> = 55;
  65.     <AB05> = 56;
  66.     <AB06> = 57;
  67.     <AB07> = 58;
  68.     <AB08> = 59;
  69.     <AB09> = 60;
  70.     <AB10> = 61;
  71.     <RTSH> = 62;
  72.     <KPMU> = 63;
  73.     <LALT> = 64;
  74.     <SPCE> = 65;
  75.     <CAPS> = 66;
  76.     <FK01> = 67;
  77.     <FK02> = 68;
  78.     <FK03> = 69;
  79.     <FK04> = 70;
  80.     <FK05> = 71;
  81.     <FK06> = 72;
  82.     <FK07> = 73;
  83.     <FK08> = 74;
  84.     <FK09> = 75;
  85.     <FK10> = 76;
  86.     <NMLK> = 77;
  87.     <SCLK> = 78;
  88.      <KP7> = 79;
  89.      <KP8> = 80;
  90.      <KP9> = 81;
  91.     <KPSU> = 82;
  92.      <KP4> = 83;
  93.      <KP5> = 84;
  94.      <KP6> = 85;
  95.     <KPAD> = 86;
  96.      <KP1> = 87;
  97.      <KP2> = 88;
  98.      <KP3> = 89;
  99.      <KP0> = 90;
  100.     <KPDL> = 91;
  101.     <LVL3> = 92;
  102.     <LSGT> = 94;
  103.     <FK11> = 95;
  104.     <FK12> = 96;
  105.     <AB11> = 97;
  106.     <KATA> = 98;
  107.     <HIRA> = 99;
  108.     <HENK> = 100;
  109.     <HKTG> = 101;
  110.     <MUHE> = 102;
  111.     <JPCM> = 103;
  112.     <KPEN> = 104;
  113.     <RCTL> = 105;
  114.     <KPDV> = 106;
  115.     <PRSC> = 107;
  116.     <RALT> = 108;
  117.     <LNFD> = 109;
  118.     <HOME> = 110;
  119.       <UP> = 111;
  120.     <PGUP> = 112;
  121.     <LEFT> = 113;
  122.     <RGHT> = 114;
  123.      <END> = 115;
  124.     <DOWN> = 116;
  125.     <PGDN> = 117;
  126.      <INS> = 118;
  127.     <DELE> = 119;
  128.     <I120> = 120;
  129.     <MUTE> = 121;
  130.     <VOL-> = 122;
  131.     <VOL+> = 123;
  132.     <POWR> = 124;
  133.     <KPEQ> = 125;
  134.     <I126> = 126;
  135.     <PAUS> = 127;
  136.     <I128> = 128;
  137.     <I129> = 129;
  138.     <HNGL> = 130;
  139.     <HJCV> = 131;
  140.     <AE13> = 132;
  141.     <LWIN> = 133;
  142.     <RWIN> = 134;
  143.     <COMP> = 135;
  144.     <STOP> = 136;
  145.     <AGAI> = 137;
  146.     <PROP> = 138;
  147.     <UNDO> = 139;
  148.     <FRNT> = 140;
  149.     <COPY> = 141;
  150.     <OPEN> = 142;
  151.     <PAST> = 143;
  152.     <FIND> = 144;
  153.      <CUT> = 145;
  154.     <HELP> = 146;
  155.     <I147> = 147;
  156.     <I148> = 148;
  157.     <I149> = 149;
  158.     <I150> = 150;
  159.     <I151> = 151;
  160.     <I152> = 152;
  161.     <I153> = 153;
  162.     <I154> = 154;
  163.     <I155> = 155;
  164.     <I156> = 156;
  165.     <I157> = 157;
  166.     <I158> = 158;
  167.     <I159> = 159;
  168.     <I160> = 160;
  169.     <I161> = 161;
  170.     <I162> = 162;
  171.     <I163> = 163;
  172.     <I164> = 164;
  173.     <I165> = 165;
  174.     <I166> = 166;
  175.     <I167> = 167;
  176.     <I168> = 168;
  177.     <I169> = 169;
  178.     <I170> = 170;
  179.     <I171> = 171;
  180.     <I172> = 172;
  181.     <I173> = 173;
  182.     <I174> = 174;
  183.     <I175> = 175;
  184.     <I176> = 176;
  185.     <I177> = 177;
  186.     <I178> = 178;
  187.     <I179> = 179;
  188.     <I180> = 180;
  189.     <I181> = 181;
  190.     <I182> = 182;
  191.     <I183> = 183;
  192.     <I184> = 184;
  193.     <I185> = 185;
  194.     <I186> = 186;
  195.     <I187> = 187;
  196.     <I188> = 188;
  197.     <I189> = 189;
  198.     <I190> = 190;
  199.     <FK13> = 191;
  200.     <FK14> = 192;
  201.     <FK15> = 193;
  202.     <FK16> = 194;
  203.     <FK17> = 195;
  204.     <FK18> = 196;
  205.     <FK19> = 197;
  206.     <FK20> = 198;
  207.     <FK21> = 199;
  208.     <FK22> = 200;
  209.     <FK23> = 201;
  210.     <FK24> = 202;
  211.     <MDSW> = 203;
  212.      <ALT> = 204;
  213.     <META> = 205;
  214.     <SUPR> = 206;
  215.     <HYPR> = 207;
  216.     <I208> = 208;
  217.     <I209> = 209;
  218.     <I210> = 210;
  219.     <I211> = 211;
  220.     <I212> = 212;
  221.     <I213> = 213;
  222.     <I214> = 214;
  223.     <I215> = 215;
  224.     <I216> = 216;
  225.     <I217> = 217;
  226.     <I218> = 218;
  227.     <I219> = 219;
  228.     <I220> = 220;
  229.     <I221> = 221;
  230.     <I222> = 222;
  231.     <I223> = 223;
  232.     <I224> = 224;
  233.     <I225> = 225;
  234.     <I226> = 226;
  235.     <I227> = 227;
  236.     <I228> = 228;
  237.     <I229> = 229;
  238.     <I230> = 230;
  239.     <I231> = 231;
  240.     <I232> = 232;
  241.     <I233> = 233;
  242.     <I234> = 234;
  243.     <I235> = 235;
  244.     <I236> = 236;
  245.     <I237> = 237;
  246.     <I238> = 238;
  247.     <I239> = 239;
  248.     <I240> = 240;
  249.     <I241> = 241;
  250.     <I242> = 242;
  251.     <I243> = 243;
  252.     <I244> = 244;
  253.     <I245> = 245;
  254.     <I246> = 246;
  255.     <I247> = 247;
  256.     <I248> = 248;
  257.     <I249> = 249;
  258.     <I250> = 250;
  259.     <I251> = 251;
  260.     <I252> = 252;
  261.     <I253> = 253;
  262.     indicator 1 = "Caps Lock";
  263.     indicator 2 = "Num Lock";
  264.     indicator 3 = "Scroll Lock";
  265.     indicator 4 = "Compose";
  266.     indicator 5 = "Kana";
  267.     indicator 6 = "Sleep";
  268.     indicator 7 = "Suspend";
  269.     indicator 8 = "Mute";
  270.     indicator 9 = "Misc";
  271.     indicator 10 = "Mail";
  272.     indicator 11 = "Charging";
  273.     virtual indicator 12 = "Shift Lock";
  274.     virtual indicator 13 = "Group 2";
  275.     virtual indicator 14 = "Mouse Keys";
  276.     alias <AC12> = <BKSL>;
  277.     alias <MENU> = <COMP>;
  278.     alias <HZTG> = <TLDE>;
  279.     alias <LMTA> = <LWIN>;
  280.     alias <RMTA> = <RWIN>;
  281.     alias <ALGR> = <RALT>;
  282.     alias <KPPT> = <I129>;
  283.     alias <LatQ> = <AD01>;
  284.     alias <LatW> = <AD02>;
  285.     alias <LatE> = <AD03>;
  286.     alias <LatR> = <AD04>;
  287.     alias <LatT> = <AD05>;
  288.     alias <LatY> = <AD06>;
  289.     alias <LatU> = <AD07>;
  290.     alias <LatI> = <AD08>;
  291.     alias <LatO> = <AD09>;
  292.     alias <LatP> = <AD10>;
  293.     alias <LatA> = <AC01>;
  294.     alias <LatS> = <AC02>;
  295.     alias <LatD> = <AC03>;
  296.     alias <LatF> = <AC04>;
  297.     alias <LatG> = <AC05>;
  298.     alias <LatH> = <AC06>;
  299.     alias <LatJ> = <AC07>;
  300.     alias <LatK> = <AC08>;
  301.     alias <LatL> = <AC09>;
  302.     alias <LatZ> = <AB01>;
  303.     alias <LatX> = <AB02>;
  304.     alias <LatC> = <AB03>;
  305.     alias <LatV> = <AB04>;
  306.     alias <LatB> = <AB05>;
  307.     alias <LatN> = <AB06>;
  308.     alias <LatM> = <AB07>;
  309. };
  310.  
  311. xkb_types "complete" {
  312.  
  313.     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
  314.  
  315.     type "ONE_LEVEL" {
  316.         modifiers= none;
  317.         level_name[Level1]= "Any";
  318.     };
  319.     type "TWO_LEVEL" {
  320.         modifiers= Shift;
  321.         map[Shift]= Level2;
  322.         level_name[Level1]= "Base";
  323.         level_name[Level2]= "Shift";
  324.     };
  325.     type "ALPHABETIC" {
  326.         modifiers= Shift+Lock;
  327.         map[Shift]= Level2;
  328.         map[Lock]= Level2;
  329.         level_name[Level1]= "Base";
  330.         level_name[Level2]= "Caps";
  331.     };
  332.     type "KEYPAD" {
  333.         modifiers= Shift+NumLock;
  334.         map[Shift]= Level2;
  335.         map[NumLock]= Level2;
  336.         level_name[Level1]= "Base";
  337.         level_name[Level2]= "Number";
  338.     };
  339.     type "SHIFT+ALT" {
  340.         modifiers= Shift+Alt;
  341.         map[Shift+Alt]= Level2;
  342.         level_name[Level1]= "Base";
  343.         level_name[Level2]= "Shift+Alt";
  344.     };
  345.     type "PC_SUPER_LEVEL2" {
  346.         modifiers= Mod4;
  347.         map[Mod4]= Level2;
  348.         level_name[Level1]= "Base";
  349.         level_name[Level2]= "Super";
  350.     };
  351.     type "PC_CONTROL_LEVEL2" {
  352.         modifiers= Control;
  353.         map[Control]= Level2;
  354.         level_name[Level1]= "Base";
  355.         level_name[Level2]= "Control";
  356.     };
  357.     type "PC_LCONTROL_LEVEL2" {
  358.         modifiers= LControl;
  359.         map[LControl]= Level2;
  360.         level_name[Level1]= "Base";
  361.         level_name[Level2]= "LControl";
  362.     };
  363.     type "PC_RCONTROL_LEVEL2" {
  364.         modifiers= RControl;
  365.         map[RControl]= Level2;
  366.         level_name[Level1]= "Base";
  367.         level_name[Level2]= "RControl";
  368.     };
  369.     type "PC_ALT_LEVEL2" {
  370.         modifiers= Alt;
  371.         map[Alt]= Level2;
  372.         level_name[Level1]= "Base";
  373.         level_name[Level2]= "Alt";
  374.     };
  375.     type "PC_LALT_LEVEL2" {
  376.         modifiers= LAlt;
  377.         map[LAlt]= Level2;
  378.         level_name[Level1]= "Base";
  379.         level_name[Level2]= "LAlt";
  380.     };
  381.     type "PC_RALT_LEVEL2" {
  382.         modifiers= RAlt;
  383.         map[RAlt]= Level2;
  384.         level_name[Level1]= "Base";
  385.         level_name[Level2]= "RAlt";
  386.     };
  387.     type "CTRL+ALT" {
  388.         modifiers= Shift+Control+Alt+LevelThree;
  389.         map[Shift]= Level2;
  390.         preserve[Shift]= Shift;
  391.         map[LevelThree]= Level3;
  392.         map[Shift+LevelThree]= Level4;
  393.         preserve[Shift+LevelThree]= Shift;
  394.         map[Control+Alt]= Level5;
  395.         level_name[Level1]= "Base";
  396.         level_name[Level2]= "Shift";
  397.         level_name[Level3]= "Alt Base";
  398.         level_name[Level4]= "Shift Alt";
  399.         level_name[Level5]= "Ctrl+Alt";
  400.     };
  401.     type "LOCAL_EIGHT_LEVEL" {
  402.         modifiers= Shift+Lock+Control+LevelThree;
  403.         map[Shift+Lock]= Level1;
  404.         map[Shift]= Level2;
  405.         map[Lock]= Level2;
  406.         map[LevelThree]= Level3;
  407.         map[Shift+Lock+LevelThree]= Level3;
  408.         map[Shift+LevelThree]= Level4;
  409.         map[Lock+LevelThree]= Level4;
  410.         map[Control]= Level5;
  411.         map[Shift+Lock+Control]= Level5;
  412.         map[Shift+Control]= Level6;
  413.         map[Lock+Control]= Level6;
  414.         map[Control+LevelThree]= Level7;
  415.         map[Shift+Lock+Control+LevelThree]= Level7;
  416.         map[Shift+Control+LevelThree]= Level8;
  417.         map[Lock+Control+LevelThree]= Level8;
  418.         level_name[Level1]= "Base";
  419.         level_name[Level2]= "Shift";
  420.         level_name[Level3]= "Level3";
  421.         level_name[Level4]= "Shift Level3";
  422.         level_name[Level5]= "Ctrl";
  423.         level_name[Level6]= "Shift Ctrl";
  424.         level_name[Level7]= "Level3 Ctrl";
  425.         level_name[Level8]= "Shift Level3 Ctrl";
  426.     };
  427.     type "THREE_LEVEL" {
  428.         modifiers= Shift+LevelThree;
  429.         map[Shift]= Level2;
  430.         map[LevelThree]= Level3;
  431.         map[Shift+LevelThree]= Level3;
  432.         level_name[Level1]= "Base";
  433.         level_name[Level2]= "Shift";
  434.         level_name[Level3]= "Level3";
  435.     };
  436.     type "EIGHT_LEVEL" {
  437.         modifiers= Shift+LevelThree+LevelFive;
  438.         map[Shift]= Level2;
  439.         map[LevelThree]= Level3;
  440.         map[Shift+LevelThree]= Level4;
  441.         map[LevelFive]= Level5;
  442.         map[Shift+LevelFive]= Level6;
  443.         map[LevelThree+LevelFive]= Level7;
  444.         map[Shift+LevelThree+LevelFive]= Level8;
  445.         level_name[Level1]= "Base";
  446.         level_name[Level2]= "Shift";
  447.         level_name[Level3]= "Alt Base";
  448.         level_name[Level4]= "Shift Alt";
  449.         level_name[Level5]= "X";
  450.         level_name[Level6]= "X Shift";
  451.         level_name[Level7]= "X Alt Base";
  452.         level_name[Level8]= "X Shift Alt";
  453.     };
  454.     type "EIGHT_LEVEL_ALPHABETIC" {
  455.         modifiers= Shift+Lock+LevelThree+LevelFive;
  456.         map[Shift]= Level2;
  457.         map[Lock]= Level2;
  458.         map[LevelThree]= Level3;
  459.         map[Shift+LevelThree]= Level4;
  460.         map[Lock+LevelThree]= Level4;
  461.         map[Shift+Lock+LevelThree]= Level3;
  462.         map[LevelFive]= Level5;
  463.         map[Shift+LevelFive]= Level6;
  464.         map[Lock+LevelFive]= Level6;
  465.         map[LevelThree+LevelFive]= Level7;
  466.         map[Shift+LevelThree+LevelFive]= Level8;
  467.         map[Lock+LevelThree+LevelFive]= Level8;
  468.         map[Shift+Lock+LevelThree+LevelFive]= Level7;
  469.         level_name[Level1]= "Base";
  470.         level_name[Level2]= "Shift";
  471.         level_name[Level3]= "Alt Base";
  472.         level_name[Level4]= "Shift Alt";
  473.         level_name[Level5]= "X";
  474.         level_name[Level6]= "X Shift";
  475.         level_name[Level7]= "X Alt Base";
  476.         level_name[Level8]= "X Shift Alt";
  477.     };
  478.     type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" {
  479.         modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;
  480.         map[Shift]= Level2;
  481.         map[LevelThree]= Level3;
  482.         map[Shift+LevelThree]= Level4;
  483.         map[LevelFive]= Level5;
  484.         map[Shift+LevelFive]= Level6;
  485.         preserve[Shift+LevelFive]= Shift;
  486.         map[LevelThree+LevelFive]= Level7;
  487.         map[Shift+LevelThree+LevelFive]= Level8;
  488.         map[NumLock]= Level5;
  489.         map[Shift+NumLock]= Level6;
  490.         preserve[Shift+NumLock]= Shift;
  491.         map[NumLock+LevelThree]= Level7;
  492.         map[Shift+NumLock+LevelThree]= Level8;
  493.         map[Shift+NumLock+LevelFive]= Level2;
  494.         map[NumLock+LevelThree+LevelFive]= Level3;
  495.         map[Shift+NumLock+LevelThree+LevelFive]= Level4;
  496.         map[Shift+Lock]= Level2;
  497.         map[Lock+LevelThree]= Level3;
  498.         map[Shift+Lock+LevelThree]= Level4;
  499.         map[Lock+LevelFive]= Level5;
  500.         map[Shift+Lock+LevelFive]= Level6;
  501.         preserve[Shift+Lock+LevelFive]= Shift;
  502.         map[Lock+LevelThree+LevelFive]= Level7;
  503.         map[Shift+Lock+LevelThree+LevelFive]= Level8;
  504.         map[Lock+NumLock]= Level5;
  505.         map[Shift+Lock+NumLock]= Level6;
  506.         preserve[Shift+Lock+NumLock]= Shift;
  507.         map[Lock+NumLock+LevelThree]= Level7;
  508.         map[Shift+Lock+NumLock+LevelThree]= Level8;
  509.         map[Shift+Lock+NumLock+LevelFive]= Level2;
  510.         map[Lock+NumLock+LevelThree+LevelFive]= Level3;
  511.         map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4;
  512.         level_name[Level1]= "Base";
  513.         level_name[Level2]= "Shift";
  514.         level_name[Level3]= "Alt Base";
  515.         level_name[Level4]= "Shift Alt";
  516.         level_name[Level5]= "X";
  517.         level_name[Level6]= "X Shift";
  518.         level_name[Level7]= "X Alt Base";
  519.         level_name[Level8]= "X Shift Alt";
  520.     };
  521.     type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" {
  522.         modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;
  523.         map[Shift]= Level2;
  524.         map[LevelThree]= Level3;
  525.         map[Shift+LevelThree]= Level4;
  526.         map[LevelFive]= Level5;
  527.         map[Shift+LevelFive]= Level6;
  528.         preserve[Shift+LevelFive]= Shift;
  529.         map[LevelThree+LevelFive]= Level7;
  530.         map[Shift+LevelThree+LevelFive]= Level8;
  531.         map[NumLock]= Level5;
  532.         map[Shift+NumLock]= Level6;
  533.         preserve[Shift+NumLock]= Shift;
  534.         map[NumLock+LevelThree]= Level7;
  535.         map[Shift+NumLock+LevelThree]= Level8;
  536.         map[Shift+NumLock+LevelFive]= Level2;
  537.         map[NumLock+LevelThree+LevelFive]= Level3;
  538.         map[Shift+NumLock+LevelThree+LevelFive]= Level4;
  539.         map[Lock]= Level2;
  540.         map[Lock+LevelThree]= Level3;
  541.         map[Shift+Lock+LevelThree]= Level4;
  542.         map[Lock+LevelFive]= Level5;
  543.         map[Shift+Lock+LevelFive]= Level6;
  544.         map[Lock+LevelThree+LevelFive]= Level7;
  545.         map[Shift+Lock+LevelThree+LevelFive]= Level8;
  546.         map[Lock+NumLock]= Level5;
  547.         map[Shift+Lock+NumLock]= Level6;
  548.         map[Lock+NumLock+LevelThree]= Level7;
  549.         map[Shift+Lock+NumLock+LevelThree]= Level8;
  550.         map[Lock+NumLock+LevelFive]= Level2;
  551.         map[Lock+NumLock+LevelThree+LevelFive]= Level4;
  552.         map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level3;
  553.         level_name[Level1]= "Base";
  554.         level_name[Level2]= "Shift";
  555.         level_name[Level3]= "Alt Base";
  556.         level_name[Level4]= "Shift Alt";
  557.         level_name[Level5]= "X";
  558.         level_name[Level6]= "X Shift";
  559.         level_name[Level7]= "X Alt Base";
  560.         level_name[Level8]= "X Shift Alt";
  561.     };
  562.     type "EIGHT_LEVEL_SEMIALPHABETIC" {
  563.         modifiers= Shift+Lock+LevelThree+LevelFive;
  564.         map[Shift]= Level2;
  565.         map[Lock]= Level2;
  566.         map[LevelThree]= Level3;
  567.         map[Shift+LevelThree]= Level4;
  568.         map[Lock+LevelThree]= Level3;
  569.         preserve[Lock+LevelThree]= Lock;
  570.         map[Shift+Lock+LevelThree]= Level4;
  571.         preserve[Shift+Lock+LevelThree]= Lock;
  572.         map[LevelFive]= Level5;
  573.         map[Shift+LevelFive]= Level6;
  574.         map[Lock+LevelFive]= Level6;
  575.         preserve[Lock+LevelFive]= Lock;
  576.         map[Shift+Lock+LevelFive]= Level6;
  577.         preserve[Shift+Lock+LevelFive]= Lock;
  578.         map[LevelThree+LevelFive]= Level7;
  579.         map[Shift+LevelThree+LevelFive]= Level8;
  580.         map[Lock+LevelThree+LevelFive]= Level7;
  581.         preserve[Lock+LevelThree+LevelFive]= Lock;
  582.         map[Shift+Lock+LevelThree+LevelFive]= Level8;
  583.         preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
  584.         level_name[Level1]= "Base";
  585.         level_name[Level2]= "Shift";
  586.         level_name[Level3]= "Alt Base";
  587.         level_name[Level4]= "Shift Alt";
  588.         level_name[Level5]= "X";
  589.         level_name[Level6]= "X Shift";
  590.         level_name[Level7]= "X Alt Base";
  591.         level_name[Level8]= "X Shift Alt";
  592.     };
  593.     type "FOUR_LEVEL" {
  594.         modifiers= Shift+LevelThree;
  595.         map[Shift]= Level2;
  596.         map[LevelThree]= Level3;
  597.         map[Shift+LevelThree]= Level4;
  598.         level_name[Level1]= "Base";
  599.         level_name[Level2]= "Shift";
  600.         level_name[Level3]= "Alt Base";
  601.         level_name[Level4]= "Shift Alt";
  602.     };
  603.     type "FOUR_LEVEL_ALPHABETIC" {
  604.         modifiers= Shift+Lock+LevelThree;
  605.         map[Shift]= Level2;
  606.         map[Lock]= Level2;
  607.         map[LevelThree]= Level3;
  608.         map[Shift+LevelThree]= Level4;
  609.         map[Lock+LevelThree]= Level4;
  610.         map[Shift+Lock+LevelThree]= Level3;
  611.         level_name[Level1]= "Base";
  612.         level_name[Level2]= "Shift";
  613.         level_name[Level3]= "Alt Base";
  614.         level_name[Level4]= "Shift Alt";
  615.     };
  616.     type "FOUR_LEVEL_SEMIALPHABETIC" {
  617.         modifiers= Shift+Lock+LevelThree;
  618.         map[Shift]= Level2;
  619.         map[Lock]= Level2;
  620.         map[LevelThree]= Level3;
  621.         map[Shift+LevelThree]= Level4;
  622.         map[Lock+LevelThree]= Level3;
  623.         preserve[Lock+LevelThree]= Lock;
  624.         map[Shift+Lock+LevelThree]= Level4;
  625.         preserve[Shift+Lock+LevelThree]= Lock;
  626.         level_name[Level1]= "Base";
  627.         level_name[Level2]= "Shift";
  628.         level_name[Level3]= "Alt Base";
  629.         level_name[Level4]= "Shift Alt";
  630.     };
  631.     type "FOUR_LEVEL_MIXED_KEYPAD" {
  632.         modifiers= Shift+NumLock+LevelThree;
  633.         map[Shift+NumLock]= Level1;
  634.         map[NumLock]= Level2;
  635.         map[Shift]= Level2;
  636.         map[LevelThree]= Level3;
  637.         map[NumLock+LevelThree]= Level3;
  638.         map[Shift+LevelThree]= Level4;
  639.         map[Shift+NumLock+LevelThree]= Level4;
  640.         level_name[Level1]= "Base";
  641.         level_name[Level2]= "Number";
  642.         level_name[Level3]= "Alt Base";
  643.         level_name[Level4]= "Shift Alt";
  644.     };
  645.     type "FOUR_LEVEL_X" {
  646.         modifiers= Shift+Control+Alt+LevelThree;
  647.         map[LevelThree]= Level2;
  648.         map[Shift+LevelThree]= Level3;
  649.         map[Control+Alt]= Level4;
  650.         level_name[Level1]= "Base";
  651.         level_name[Level2]= "Alt Base";
  652.         level_name[Level3]= "Shift Alt";
  653.         level_name[Level4]= "Ctrl+Alt";
  654.     };
  655.     type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
  656.         modifiers= Shift+Lock+LevelThree;
  657.         map[Shift]= Level2;
  658.         map[Lock]= Level4;
  659.         preserve[Lock]= Lock;
  660.         map[LevelThree]= Level3;
  661.         map[Shift+LevelThree]= Level4;
  662.         map[Lock+LevelThree]= Level3;
  663.         preserve[Lock+LevelThree]= Lock;
  664.         map[Shift+Lock+LevelThree]= Level3;
  665.         level_name[Level1]= "Base";
  666.         level_name[Level2]= "Shift";
  667.         level_name[Level3]= "AltGr Base";
  668.         level_name[Level4]= "Shift AltGr";
  669.     };
  670.     type "FOUR_LEVEL_PLUS_LOCK" {
  671.         modifiers= Shift+Lock+LevelThree;
  672.         map[Shift]= Level2;
  673.         map[LevelThree]= Level3;
  674.         map[Shift+LevelThree]= Level4;
  675.         map[Lock]= Level5;
  676.         map[Shift+Lock]= Level2;
  677.         map[Lock+LevelThree]= Level3;
  678.         map[Shift+Lock+LevelThree]= Level4;
  679.         level_name[Level1]= "Base";
  680.         level_name[Level2]= "Shift";
  681.         level_name[Level3]= "Alt Base";
  682.         level_name[Level4]= "Shift Alt";
  683.         level_name[Level5]= "Lock";
  684.     };
  685.     type "FOUR_LEVEL_KEYPAD" {
  686.         modifiers= Shift+NumLock+LevelThree;
  687.         map[Shift]= Level2;
  688.         map[NumLock]= Level2;
  689.         map[LevelThree]= Level3;
  690.         map[Shift+LevelThree]= Level4;
  691.         map[NumLock+LevelThree]= Level4;
  692.         map[Shift+NumLock+LevelThree]= Level3;
  693.         level_name[Level1]= "Base";
  694.         level_name[Level2]= "Number";
  695.         level_name[Level3]= "Alt Base";
  696.         level_name[Level4]= "Alt Number";
  697.     };
  698. };
  699.  
  700. xkb_compatibility "complete" {
  701.  
  702.     virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper;
  703.  
  704.     interpret.useModMapMods= AnyLevel;
  705.     interpret.repeat= False;
  706.     interpret.locking= False;
  707.     interpret ISO_Level2_Latch+Exactly(Shift) {
  708.         useModMapMods=level1;
  709.         action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
  710.     };
  711.     interpret Shift_Lock+AnyOf(Shift+Lock) {
  712.         action= LockMods(modifiers=Shift);
  713.     };
  714.     interpret Num_Lock+AnyOf(all) {
  715.         virtualModifier= NumLock;
  716.         action= LockMods(modifiers=NumLock);
  717.     };
  718.     interpret ISO_Level3_Shift+AnyOf(all) {
  719.         virtualModifier= LevelThree;
  720.         useModMapMods=level1;
  721.         action= SetMods(modifiers=LevelThree,clearLocks);
  722.     };
  723.     interpret ISO_Level3_Latch+AnyOf(all) {
  724.         virtualModifier= LevelThree;
  725.         useModMapMods=level1;
  726.         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
  727.     };
  728.     interpret ISO_Level3_Lock+AnyOf(all) {
  729.         virtualModifier= LevelThree;
  730.         useModMapMods=level1;
  731.         action= LockMods(modifiers=LevelThree);
  732.     };
  733.     interpret Alt_L+AnyOf(all) {
  734.         virtualModifier= Alt;
  735.         action= SetMods(modifiers=modMapMods,clearLocks);
  736.     };
  737.     interpret Alt_R+AnyOf(all) {
  738.         virtualModifier= Alt;
  739.         action= SetMods(modifiers=modMapMods,clearLocks);
  740.     };
  741.     interpret Meta_L+AnyOf(all) {
  742.         virtualModifier= Meta;
  743.         action= SetMods(modifiers=modMapMods,clearLocks);
  744.     };
  745.     interpret Meta_R+AnyOf(all) {
  746.         virtualModifier= Meta;
  747.         action= SetMods(modifiers=modMapMods,clearLocks);
  748.     };
  749.     interpret Super_L+AnyOf(all) {
  750.         virtualModifier= Super;
  751.         action= SetMods(modifiers=modMapMods,clearLocks);
  752.     };
  753.     interpret Super_R+AnyOf(all) {
  754.         virtualModifier= Super;
  755.         action= SetMods(modifiers=modMapMods,clearLocks);
  756.     };
  757.     interpret Hyper_L+AnyOf(all) {
  758.         virtualModifier= Hyper;
  759.         action= SetMods(modifiers=modMapMods,clearLocks);
  760.     };
  761.     interpret Hyper_R+AnyOf(all) {
  762.         virtualModifier= Hyper;
  763.         action= SetMods(modifiers=modMapMods,clearLocks);
  764.     };
  765.     interpret Scroll_Lock+AnyOf(all) {
  766.         virtualModifier= ScrollLock;
  767.         action= LockMods(modifiers=modMapMods);
  768.     };
  769.     interpret ISO_Level5_Shift+AnyOf(all) {
  770.         virtualModifier= LevelFive;
  771.         useModMapMods=level1;
  772.         action= SetMods(modifiers=LevelFive,clearLocks);
  773.     };
  774.     interpret ISO_Level5_Latch+AnyOf(all) {
  775.         virtualModifier= LevelFive;
  776.         useModMapMods=level1;
  777.         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
  778.     };
  779.     interpret ISO_Level5_Lock+AnyOf(all) {
  780.         virtualModifier= LevelFive;
  781.         useModMapMods=level1;
  782.         action= LockMods(modifiers=LevelFive);
  783.     };
  784.     interpret Mode_switch+AnyOfOrNone(all) {
  785.         virtualModifier= AltGr;
  786.         useModMapMods=level1;
  787.         action= SetGroup(group=+1);
  788.     };
  789.     interpret ISO_Level3_Shift+AnyOfOrNone(all) {
  790.         action= SetMods(modifiers=LevelThree,clearLocks);
  791.     };
  792.     interpret ISO_Level3_Latch+AnyOfOrNone(all) {
  793.         action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
  794.     };
  795.     interpret ISO_Level3_Lock+AnyOfOrNone(all) {
  796.         action= LockMods(modifiers=LevelThree);
  797.     };
  798.     interpret ISO_Group_Latch+AnyOfOrNone(all) {
  799.         virtualModifier= AltGr;
  800.         useModMapMods=level1;
  801.         action= LatchGroup(group=2);
  802.     };
  803.     interpret ISO_Next_Group+AnyOfOrNone(all) {
  804.         virtualModifier= AltGr;
  805.         useModMapMods=level1;
  806.         action= LockGroup(group=+1);
  807.     };
  808.     interpret ISO_Prev_Group+AnyOfOrNone(all) {
  809.         virtualModifier= AltGr;
  810.         useModMapMods=level1;
  811.         action= LockGroup(group=-1);
  812.     };
  813.     interpret ISO_First_Group+AnyOfOrNone(all) {
  814.         action= LockGroup(group=1);
  815.     };
  816.     interpret ISO_Last_Group+AnyOfOrNone(all) {
  817.         action= LockGroup(group=2);
  818.     };
  819.     interpret KP_1+AnyOfOrNone(all) {
  820.         repeat= True;
  821.         action= MovePtr(x=-1,y=+1);
  822.     };
  823.     interpret KP_End+AnyOfOrNone(all) {
  824.         repeat= True;
  825.         action= MovePtr(x=-1,y=+1);
  826.     };
  827.     interpret KP_2+AnyOfOrNone(all) {
  828.         repeat= True;
  829.         action= MovePtr(x=+0,y=+1);
  830.     };
  831.     interpret KP_Down+AnyOfOrNone(all) {
  832.         repeat= True;
  833.         action= MovePtr(x=+0,y=+1);
  834.     };
  835.     interpret KP_3+AnyOfOrNone(all) {
  836.         repeat= True;
  837.         action= MovePtr(x=+1,y=+1);
  838.     };
  839.     interpret KP_Next+AnyOfOrNone(all) {
  840.         repeat= True;
  841.         action= MovePtr(x=+1,y=+1);
  842.     };
  843.     interpret KP_4+AnyOfOrNone(all) {
  844.         repeat= True;
  845.         action= MovePtr(x=-1,y=+0);
  846.     };
  847.     interpret KP_Left+AnyOfOrNone(all) {
  848.         repeat= True;
  849.         action= MovePtr(x=-1,y=+0);
  850.     };
  851.     interpret KP_6+AnyOfOrNone(all) {
  852.         repeat= True;
  853.         action= MovePtr(x=+1,y=+0);
  854.     };
  855.     interpret KP_Right+AnyOfOrNone(all) {
  856.         repeat= True;
  857.         action= MovePtr(x=+1,y=+0);
  858.     };
  859.     interpret KP_7+AnyOfOrNone(all) {
  860.         repeat= True;
  861.         action= MovePtr(x=-1,y=-1);
  862.     };
  863.     interpret KP_Home+AnyOfOrNone(all) {
  864.         repeat= True;
  865.         action= MovePtr(x=-1,y=-1);
  866.     };
  867.     interpret KP_8+AnyOfOrNone(all) {
  868.         repeat= True;
  869.         action= MovePtr(x=+0,y=-1);
  870.     };
  871.     interpret KP_Up+AnyOfOrNone(all) {
  872.         repeat= True;
  873.         action= MovePtr(x=+0,y=-1);
  874.     };
  875.     interpret KP_9+AnyOfOrNone(all) {
  876.         repeat= True;
  877.         action= MovePtr(x=+1,y=-1);
  878.     };
  879.     interpret KP_Prior+AnyOfOrNone(all) {
  880.         repeat= True;
  881.         action= MovePtr(x=+1,y=-1);
  882.     };
  883.     interpret KP_5+AnyOfOrNone(all) {
  884.         repeat= True;
  885.         action= PtrBtn(button=default);
  886.     };
  887.     interpret KP_Begin+AnyOfOrNone(all) {
  888.         repeat= True;
  889.         action= PtrBtn(button=default);
  890.     };
  891.     interpret KP_F2+AnyOfOrNone(all) {
  892.         repeat= True;
  893.         action= SetPtrDflt(affect=button,button=1);
  894.     };
  895.     interpret KP_Divide+AnyOfOrNone(all) {
  896.         repeat= True;
  897.         action= SetPtrDflt(affect=button,button=1);
  898.     };
  899.     interpret KP_F3+AnyOfOrNone(all) {
  900.         repeat= True;
  901.         action= SetPtrDflt(affect=button,button=2);
  902.     };
  903.     interpret KP_Multiply+AnyOfOrNone(all) {
  904.         repeat= True;
  905.         action= SetPtrDflt(affect=button,button=2);
  906.     };
  907.     interpret KP_F4+AnyOfOrNone(all) {
  908.         repeat= True;
  909.         action= SetPtrDflt(affect=button,button=3);
  910.     };
  911.     interpret KP_Subtract+AnyOfOrNone(all) {
  912.         repeat= True;
  913.         action= SetPtrDflt(affect=button,button=3);
  914.     };
  915.     interpret KP_Separator+AnyOfOrNone(all) {
  916.         repeat= True;
  917.         action= PtrBtn(button=default,count=2);
  918.     };
  919.     interpret KP_Add+AnyOfOrNone(all) {
  920.         repeat= True;
  921.         action= PtrBtn(button=default,count=2);
  922.     };
  923.     interpret KP_0+AnyOfOrNone(all) {
  924.         repeat= True;
  925.         action= LockPtrBtn(button=default,affect=lock);
  926.     };
  927.     interpret KP_Insert+AnyOfOrNone(all) {
  928.         repeat= True;
  929.         action= LockPtrBtn(button=default,affect=lock);
  930.     };
  931.     interpret KP_Decimal+AnyOfOrNone(all) {
  932.         repeat= True;
  933.         action= LockPtrBtn(button=default,affect=unlock);
  934.     };
  935.     interpret KP_Delete+AnyOfOrNone(all) {
  936.         repeat= True;
  937.         action= LockPtrBtn(button=default,affect=unlock);
  938.     };
  939.     interpret F25+AnyOfOrNone(all) {
  940.         repeat= True;
  941.         action= SetPtrDflt(affect=button,button=1);
  942.     };
  943.     interpret F26+AnyOfOrNone(all) {
  944.         repeat= True;
  945.         action= SetPtrDflt(affect=button,button=2);
  946.     };
  947.     interpret F27+AnyOfOrNone(all) {
  948.         repeat= True;
  949.         action= MovePtr(x=-1,y=-1);
  950.     };
  951.     interpret F29+AnyOfOrNone(all) {
  952.         repeat= True;
  953.         action= MovePtr(x=+1,y=-1);
  954.     };
  955.     interpret F31+AnyOfOrNone(all) {
  956.         repeat= True;
  957.         action= PtrBtn(button=default);
  958.     };
  959.     interpret F33+AnyOfOrNone(all) {
  960.         repeat= True;
  961.         action= MovePtr(x=-1,y=+1);
  962.     };
  963.     interpret F35+AnyOfOrNone(all) {
  964.         repeat= True;
  965.         action= MovePtr(x=+1,y=+1);
  966.     };
  967.     interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
  968.         action= PtrBtn(button=default);
  969.     };
  970.     interpret Pointer_Button1+AnyOfOrNone(all) {
  971.         action= PtrBtn(button=1);
  972.     };
  973.     interpret Pointer_Button2+AnyOfOrNone(all) {
  974.         action= PtrBtn(button=2);
  975.     };
  976.     interpret Pointer_Button3+AnyOfOrNone(all) {
  977.         action= PtrBtn(button=3);
  978.     };
  979.     interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
  980.         action= PtrBtn(button=default,count=2);
  981.     };
  982.     interpret Pointer_DblClick1+AnyOfOrNone(all) {
  983.         action= PtrBtn(button=1,count=2);
  984.     };
  985.     interpret Pointer_DblClick2+AnyOfOrNone(all) {
  986.         action= PtrBtn(button=2,count=2);
  987.     };
  988.     interpret Pointer_DblClick3+AnyOfOrNone(all) {
  989.         action= PtrBtn(button=3,count=2);
  990.     };
  991.     interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
  992.         action= LockPtrBtn(button=default,affect=both);
  993.     };
  994.     interpret Pointer_Drag1+AnyOfOrNone(all) {
  995.         action= LockPtrBtn(button=1,affect=both);
  996.     };
  997.     interpret Pointer_Drag2+AnyOfOrNone(all) {
  998.         action= LockPtrBtn(button=2,affect=both);
  999.     };
  1000.     interpret Pointer_Drag3+AnyOfOrNone(all) {
  1001.         action= LockPtrBtn(button=3,affect=both);
  1002.     };
  1003.     interpret Pointer_EnableKeys+AnyOfOrNone(all) {
  1004.         action= LockControls(controls=MouseKeys);
  1005.     };
  1006.     interpret Pointer_Accelerate+AnyOfOrNone(all) {
  1007.         action= LockControls(controls=MouseKeysAccel);
  1008.     };
  1009.     interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
  1010.         action= SetPtrDflt(affect=button,button=+1);
  1011.     };
  1012.     interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
  1013.         action= SetPtrDflt(affect=button,button=-1);
  1014.     };
  1015.     interpret AccessX_Enable+AnyOfOrNone(all) {
  1016.         action= LockControls(controls=AccessXKeys);
  1017.     };
  1018.     interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
  1019.         action= LockControls(controls=AccessXFeedback);
  1020.     };
  1021.     interpret RepeatKeys_Enable+AnyOfOrNone(all) {
  1022.         action= LockControls(controls=RepeatKeys);
  1023.     };
  1024.     interpret SlowKeys_Enable+AnyOfOrNone(all) {
  1025.         action= LockControls(controls=SlowKeys);
  1026.     };
  1027.     interpret BounceKeys_Enable+AnyOfOrNone(all) {
  1028.         action= LockControls(controls=BounceKeys);
  1029.     };
  1030.     interpret StickyKeys_Enable+AnyOfOrNone(all) {
  1031.         action= LockControls(controls=StickyKeys);
  1032.     };
  1033.     interpret MouseKeys_Enable+AnyOfOrNone(all) {
  1034.         action= LockControls(controls=MouseKeys);
  1035.     };
  1036.     interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
  1037.         action= LockControls(controls=MouseKeysAccel);
  1038.     };
  1039.     interpret Overlay1_Enable+AnyOfOrNone(all) {
  1040.         action= LockControls(controls=Overlay1);
  1041.     };
  1042.     interpret Overlay2_Enable+AnyOfOrNone(all) {
  1043.         action= LockControls(controls=Overlay2);
  1044.     };
  1045.     interpret AudibleBell_Enable+AnyOfOrNone(all) {
  1046.         action= LockControls(controls=AudibleBell);
  1047.     };
  1048.     interpret Terminate_Server+AnyOfOrNone(all) {
  1049.         action= Terminate();
  1050.     };
  1051.     interpret Alt_L+AnyOfOrNone(all) {
  1052.         action= SetMods(modifiers=Alt,clearLocks);
  1053.     };
  1054.     interpret Alt_R+AnyOfOrNone(all) {
  1055.         action= SetMods(modifiers=Alt,clearLocks);
  1056.     };
  1057.     interpret Meta_L+AnyOfOrNone(all) {
  1058.         action= SetMods(modifiers=Meta,clearLocks);
  1059.     };
  1060.     interpret Meta_R+AnyOfOrNone(all) {
  1061.         action= SetMods(modifiers=Meta,clearLocks);
  1062.     };
  1063.     interpret Super_L+AnyOfOrNone(all) {
  1064.         action= SetMods(modifiers=Super,clearLocks);
  1065.     };
  1066.     interpret Super_R+AnyOfOrNone(all) {
  1067.         action= SetMods(modifiers=Super,clearLocks);
  1068.     };
  1069.     interpret Hyper_L+AnyOfOrNone(all) {
  1070.         action= SetMods(modifiers=Hyper,clearLocks);
  1071.     };
  1072.     interpret Hyper_R+AnyOfOrNone(all) {
  1073.         action= SetMods(modifiers=Hyper,clearLocks);
  1074.     };
  1075.     interpret Shift_L+AnyOfOrNone(all) {
  1076.         action= SetMods(modifiers=Shift,clearLocks);
  1077.     };
  1078.     interpret XF86Switch_VT_1+AnyOfOrNone(all) {
  1079.         repeat= True;
  1080.         action= SwitchScreen(screen=1,!same);
  1081.     };
  1082.     interpret XF86Switch_VT_2+AnyOfOrNone(all) {
  1083.         repeat= True;
  1084.         action= SwitchScreen(screen=2,!same);
  1085.     };
  1086.     interpret XF86Switch_VT_3+AnyOfOrNone(all) {
  1087.         repeat= True;
  1088.         action= SwitchScreen(screen=3,!same);
  1089.     };
  1090.     interpret XF86Switch_VT_4+AnyOfOrNone(all) {
  1091.         repeat= True;
  1092.         action= SwitchScreen(screen=4,!same);
  1093.     };
  1094.     interpret XF86Switch_VT_5+AnyOfOrNone(all) {
  1095.         repeat= True;
  1096.         action= SwitchScreen(screen=5,!same);
  1097.     };
  1098.     interpret XF86Switch_VT_6+AnyOfOrNone(all) {
  1099.         repeat= True;
  1100.         action= SwitchScreen(screen=6,!same);
  1101.     };
  1102.     interpret XF86Switch_VT_7+AnyOfOrNone(all) {
  1103.         repeat= True;
  1104.         action= SwitchScreen(screen=7,!same);
  1105.     };
  1106.     interpret XF86Switch_VT_8+AnyOfOrNone(all) {
  1107.         repeat= True;
  1108.         action= SwitchScreen(screen=8,!same);
  1109.     };
  1110.     interpret XF86Switch_VT_9+AnyOfOrNone(all) {
  1111.         repeat= True;
  1112.         action= SwitchScreen(screen=9,!same);
  1113.     };
  1114.     interpret XF86Switch_VT_10+AnyOfOrNone(all) {
  1115.         repeat= True;
  1116.         action= SwitchScreen(screen=10,!same);
  1117.     };
  1118.     interpret XF86Switch_VT_11+AnyOfOrNone(all) {
  1119.         repeat= True;
  1120.         action= SwitchScreen(screen=11,!same);
  1121.     };
  1122.     interpret XF86Switch_VT_12+AnyOfOrNone(all) {
  1123.         repeat= True;
  1124.         action= SwitchScreen(screen=12,!same);
  1125.     };
  1126.     interpret XF86LogGrabInfo+AnyOfOrNone(all) {
  1127.         repeat= True;
  1128.         action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);
  1129.     };
  1130.     interpret XF86LogWindowTree+AnyOfOrNone(all) {
  1131.         repeat= True;
  1132.         action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);
  1133.     };
  1134.     interpret XF86Next_VMode+AnyOfOrNone(all) {
  1135.         repeat= True;
  1136.         action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
  1137.     };
  1138.     interpret XF86Prev_VMode+AnyOfOrNone(all) {
  1139.         repeat= True;
  1140.         action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
  1141.     };
  1142.     interpret ISO_Level5_Shift+AnyOfOrNone(all) {
  1143.         action= SetMods(modifiers=LevelFive,clearLocks);
  1144.     };
  1145.     interpret ISO_Level5_Latch+AnyOfOrNone(all) {
  1146.         action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
  1147.     };
  1148.     interpret ISO_Level5_Lock+AnyOfOrNone(all) {
  1149.         action= LockMods(modifiers=LevelFive);
  1150.     };
  1151.     interpret Caps_Lock+AnyOfOrNone(all) {
  1152.         action= LockMods(modifiers=Lock);
  1153.     };
  1154.     interpret Any+Exactly(Lock) {
  1155.         action= LockMods(modifiers=Lock);
  1156.     };
  1157.     interpret Any+AnyOf(all) {
  1158.         action= SetMods(modifiers=modMapMods,clearLocks);
  1159.     };
  1160.     group 2 = AltGr;
  1161.     group 3 = AltGr;
  1162.     group 4 = AltGr;
  1163.     indicator "Caps Lock" {
  1164.         !allowExplicit;
  1165.         whichModState= locked;
  1166.         modifiers= Lock;
  1167.     };
  1168.     indicator "Num Lock" {
  1169.         !allowExplicit;
  1170.         whichModState= locked;
  1171.         modifiers= NumLock;
  1172.     };
  1173.     indicator "Scroll Lock" {
  1174.         whichModState= locked;
  1175.         modifiers= ScrollLock;
  1176.     };
  1177.     indicator "Shift Lock" {
  1178.         !allowExplicit;
  1179.         whichModState= locked;
  1180.         modifiers= Shift;
  1181.     };
  1182.     indicator "Group 2" {
  1183.         !allowExplicit;
  1184.         groups= 0xfe;
  1185.     };
  1186.     indicator "Mouse Keys" {
  1187.         indicatorDrivesKeyboard;
  1188.         controls= mouseKeys;
  1189.     };
  1190. };
  1191.  
  1192. xkb_symbols "pc+us+inet(evdev)" {
  1193.  
  1194.     name[group1]="English (US)";
  1195.  
  1196.     key  <ESC> {         [       Caps_Lock ] };
  1197.     key <AE01> {         [               1,          exclam ] };
  1198.     key <AE02> {         [               2,              at ] };
  1199.     key <AE03> {         [               3,      numbersign ] };
  1200.     key <AE04> {         [               4,          dollar ] };
  1201.     key <AE05> {         [               5,         percent ] };
  1202.     key <AE06> {         [               6,     asciicircum ] };
  1203.     key <AE07> {         [               7,       ampersand ] };
  1204.     key <AE08> {         [               8,        asterisk ] };
  1205.     key <AE09> {         [               9,       parenleft ] };
  1206.     key <AE10> {         [               0,      parenright ] };
  1207.     key <AE11> {         [           minus,      underscore ] };
  1208.     key <AE12> {         [           equal,            plus ] };
  1209.     key <BKSP> {         [       BackSpace,       BackSpace ] };
  1210.     key  <TAB> {         [             Tab,    ISO_Left_Tab ] };
  1211.     key <AD01> {
  1212.         type= "ALPHABETIC",
  1213.         symbols[Group1]= [               q,               Q ]
  1214.     };
  1215.     key <AD02> {
  1216.         type= "ALPHABETIC",
  1217.         symbols[Group1]= [               w,               W ]
  1218.     };
  1219.     key <AD03> {
  1220.         type= "ALPHABETIC",
  1221.         symbols[Group1]= [               e,               E ],
  1222.         symbols[Group2]= [      ediaeresis,      Ediaeresis ]
  1223.     };
  1224.     key <AD04> {
  1225.         type= "ALPHABETIC",
  1226.         symbols[Group1]= [               r,               R ]
  1227.     };
  1228.     key <AD05> {
  1229.         type= "ALPHABETIC",
  1230.         symbols[Group1]= [               t,               T ]
  1231.     };
  1232.     key <AD06> {
  1233.         type= "ALPHABETIC",
  1234.         symbols[Group1]= [               y,               Y ]
  1235.     };
  1236.     key <AD07> {
  1237.         type= "ALPHABETIC",
  1238.         symbols[Group1]= [               u,               U ],
  1239.         symbols[Group2]= [       udiaeresis,       Udiaeresis ]
  1240.     };
  1241.     key <AD08> {
  1242.         type= "ALPHABETIC",
  1243.         symbols[Group1]= [               i,               I ],
  1244.         symbols[Group2]= [      idiaeresis,      Idiaeresis ]
  1245.     };
  1246.     key <AD09> {
  1247.         type= "ALPHABETIC",
  1248.         symbols[Group1]= [               o,               O ],
  1249.         symbols[Group2]= [      odiaeresis,      Odiaeresis ]
  1250.     };
  1251.     key <AD10> {
  1252.         type= "ALPHABETIC",
  1253.         symbols[Group1]= [               p,               P ]
  1254.     };
  1255.     key <AD11> {
  1256.         symbols[Group1]= [     bracketleft,       braceleft ],
  1257.         symbols[Group2]= [          scaron,          Scaron ],
  1258.         symbols[Group3]= [        division,  dead_abovering ],
  1259.         symbols[Group4]= [        division ]
  1260.     };
  1261.     key <AD12> {
  1262.         symbols[Group1]= [    bracketright,      braceright ],
  1263.         symbols[Group2]= [         dstroke,         Dstroke ],
  1264.         symbols[Group3]= [        multiply,     dead_macron ],
  1265.         symbols[Group4]= [        multiply ]
  1266.     };
  1267.     key <RTRN> {         [          Return ] };
  1268.     key <LCTL> {         [     Mode_switch ] };
  1269.     key <AC01> {
  1270.         type= "ALPHABETIC",
  1271.         symbols[Group1]= [               a,               A ],
  1272.         symbols[Group2]= [      adiaeresis,      Adiaeresis ]
  1273.     };
  1274.     key <AC02> {
  1275.         type= "ALPHABETIC",
  1276.         symbols[Group1]= [               s,               S ],
  1277.         symbols[Group2]= [          ssharp,               S ]
  1278.     };
  1279.     key <AC03> {
  1280.         type= "ALPHABETIC",
  1281.         symbols[Group1]= [               d,               D ]
  1282.     };
  1283.     key <AC04> {
  1284.         type= "ALPHABETIC",
  1285.         symbols[Group1]= [               f,               F ]
  1286.     };
  1287.     key <AC05> {
  1288.         type= "ALPHABETIC",
  1289.         symbols[Group1]= [               g,               G ]
  1290.     };
  1291.     key <AC06> {
  1292.         type= "ALPHABETIC",
  1293.         symbols[Group1]= [               h,               H ]
  1294.     };
  1295.     key <AC07> {
  1296.         type= "ALPHABETIC",
  1297.         symbols[Group1]= [               j,               J ]
  1298.     };
  1299.     key <AC08> {
  1300.         type= "ALPHABETIC",
  1301.         symbols[Group1]= [               k,               K ]
  1302.     };
  1303.     key <AC09> {
  1304.         type= "ALPHABETIC",
  1305.         symbols[Group1]= [               l,               L ]
  1306.     };
  1307.     key <AC10> {
  1308.         symbols[Group1]= [       semicolon,           colon ],
  1309.         symbols[Group2]= [          ccaron,          Ccaron ],
  1310.         symbols[Group3]= [      dead_acute, dead_doubleacute ],
  1311.         symbols[Group4]= [      dead_acute ]
  1312.     };
  1313.     key <AC11> {
  1314.         symbols[Group1]= [      apostrophe,        quotedbl ],
  1315.         symbols[Group2]= [          cacute,          Cacute ],
  1316.         symbols[Group3]= [          ssharp,      dead_caron ],
  1317.         symbols[Group4]= [          ssharp ]
  1318.     };
  1319.     key <TLDE> {         [           grave,      asciitilde ] };
  1320.     key <LFSH> {         [         Shift_L ] };
  1321.     key <BKSL> {
  1322.         symbols[Group1]= [       backslash,             bar ],
  1323.         symbols[Group2]= [          zcaron,          Zcaron ],
  1324.         symbols[Group3]= [        currency,      dead_breve ],
  1325.         symbols[Group4]= [        currency ]
  1326.     };
  1327.     key <AB01> {
  1328.         type= "ALPHABETIC",
  1329.         symbols[Group1]= [               z,               Z ]
  1330.     };
  1331.     key <AB02> {
  1332.         type= "ALPHABETIC",
  1333.         symbols[Group1]= [               x,               X ]
  1334.     };
  1335.     key <AB03> {
  1336.         type= "ALPHABETIC",
  1337.         symbols[Group1]= [               c,               C ]
  1338.     };
  1339.     key <AB04> {
  1340.         type= "ALPHABETIC",
  1341.         symbols[Group1]= [               v,               V ]
  1342.     };
  1343.     key <AB05> {
  1344.         type= "ALPHABETIC",
  1345.         symbols[Group1]= [               b,               B ]
  1346.     };
  1347.     key <AB06> {
  1348.         type= "ALPHABETIC",
  1349.         symbols[Group1]= [               n,               N ]
  1350.     };
  1351.     key <AB07> {
  1352.         type= "ALPHABETIC",
  1353.         symbols[Group1]= [               m,               M ]
  1354.     };
  1355.     key <AB08> {         [           comma,            less ] };
  1356.     key <AB09> {         [          period,         greater ] };
  1357.     key <AB10> {         [           slash,        question ] };
  1358.     key <RTSH> {         [         Shift_R ] };
  1359.     key <KPMU> {
  1360.         type= "CTRL+ALT",
  1361.         symbols[Group1]= [     KP_Multiply,     KP_Multiply,     KP_Multiply,     KP_Multiply,   XF86ClearGrab ]
  1362.     };
  1363.     key <LALT> {         [           Alt_L,          Meta_L ] };
  1364.     key <SPCE> {         [           space ] };
  1365.     key <CAPS> {         [          Escape ] };
  1366.     key <FK01> {
  1367.         type= "CTRL+ALT",
  1368.         symbols[Group1]= [              F1,              F1,              F1,              F1, XF86Switch_VT_1 ]
  1369.     };
  1370.     key <FK02> {
  1371.         type= "CTRL+ALT",
  1372.         symbols[Group1]= [              F2,              F2,              F2,              F2, XF86Switch_VT_2 ]
  1373.     };
  1374.     key <FK03> {
  1375.         type= "CTRL+ALT",
  1376.         symbols[Group1]= [              F3,              F3,              F3,              F3, XF86Switch_VT_3 ]
  1377.     };
  1378.     key <FK04> {
  1379.         type= "CTRL+ALT",
  1380.         symbols[Group1]= [              F4,              F4,              F4,              F4, XF86Switch_VT_4 ]
  1381.     };
  1382.     key <FK05> {
  1383.         type= "CTRL+ALT",
  1384.         symbols[Group1]= [              F5,              F5,              F5,              F5, XF86Switch_VT_5 ]
  1385.     };
  1386.     key <FK06> {
  1387.         type= "CTRL+ALT",
  1388.         symbols[Group1]= [              F6,              F6,              F6,              F6, XF86Switch_VT_6 ]
  1389.     };
  1390.     key <FK07> {
  1391.         type= "CTRL+ALT",
  1392.         symbols[Group1]= [              F7,              F7,              F7,              F7, XF86Switch_VT_7 ]
  1393.     };
  1394.     key <FK08> {
  1395.         type= "CTRL+ALT",
  1396.         symbols[Group1]= [              F8,              F8,              F8,              F8, XF86Switch_VT_8 ]
  1397.     };
  1398.     key <FK09> {
  1399.         type= "CTRL+ALT",
  1400.         symbols[Group1]= [              F9,              F9,              F9,              F9, XF86Switch_VT_9 ]
  1401.     };
  1402.     key <FK10> {
  1403.         type= "CTRL+ALT",
  1404.         symbols[Group1]= [             F10,             F10,             F10,             F10, XF86Switch_VT_10 ]
  1405.     };
  1406.     key <NMLK> {         [        Num_Lock ] };
  1407.     key <SCLK> {         [     Scroll_Lock ] };
  1408.     key  <KP7> {         [         KP_Home,            KP_7 ] };
  1409.     key  <KP8> {         [           KP_Up,            KP_8 ] };
  1410.     key  <KP9> {         [        KP_Prior,            KP_9 ] };
  1411.     key <KPSU> {
  1412.         type= "CTRL+ALT",
  1413.         symbols[Group1]= [     KP_Subtract,     KP_Subtract,     KP_Subtract,     KP_Subtract,  XF86Prev_VMode ]
  1414.     };
  1415.     key  <KP4> {         [         KP_Left,            KP_4 ] };
  1416.     key  <KP5> {         [        KP_Begin,            KP_5 ] };
  1417.     key  <KP6> {         [        KP_Right,            KP_6 ] };
  1418.     key <KPAD> {
  1419.         type= "CTRL+ALT",
  1420.         symbols[Group1]= [          KP_Add,          KP_Add,          KP_Add,          KP_Add,  XF86Next_VMode ]
  1421.     };
  1422.     key  <KP1> {         [          KP_End,            KP_1 ] };
  1423.     key  <KP2> {         [         KP_Down,            KP_2 ] };
  1424.     key  <KP3> {         [         KP_Next,            KP_3 ] };
  1425.     key  <KP0> {         [       KP_Insert,            KP_0 ] };
  1426.     key <KPDL> {         [       KP_Delete,      KP_Decimal ] };
  1427.     key <LVL3> {         [ ISO_Level3_Shift ] };
  1428.     key <LSGT> {
  1429.         type= "FOUR_LEVEL",
  1430.         symbols[Group1]= [       Control_L,        NoSymbol,        NoSymbol,        NoSymbol ]
  1431.     };
  1432.     key <FK11> {
  1433.         type= "CTRL+ALT",
  1434.         symbols[Group1]= [             F11,             F11,             F11,             F11, XF86Switch_VT_11 ]
  1435.     };
  1436.     key <FK12> {
  1437.         type= "CTRL+ALT",
  1438.         symbols[Group1]= [             F12,             F12,             F12,             F12, XF86Switch_VT_12 ]
  1439.     };
  1440.     key <KATA> {         [        Katakana ] };
  1441.     key <HIRA> {         [        Hiragana ] };
  1442.     key <HENK> {         [     Henkan_Mode ] };
  1443.     key <HKTG> {         [ Hiragana_Katakana ] };
  1444.     key <MUHE> {         [        Muhenkan ] };
  1445.     key <KPEN> {         [        KP_Enter ] };
  1446.     key <RCTL> {         [       Control_R ] };
  1447.     key <KPDV> {
  1448.         type= "CTRL+ALT",
  1449.         symbols[Group1]= [       KP_Divide,       KP_Divide,       KP_Divide,       KP_Divide,      XF86Ungrab ]
  1450.     };
  1451.     key <PRSC> {
  1452.         type= "PC_ALT_LEVEL2",
  1453.         symbols[Group1]= [           Print,         Sys_Req ]
  1454.     };
  1455.     key <RALT> {
  1456.         type= "TWO_LEVEL",
  1457.         symbols[Group1]= [           Alt_R,          Meta_R ]
  1458.     };
  1459.     key <LNFD> {         [        Linefeed ] };
  1460.     key <HOME> {         [            Home ] };
  1461.     key   <UP> {         [              Up ] };
  1462.     key <PGUP> {         [           Prior ] };
  1463.     key <LEFT> {         [            Left ] };
  1464.     key <RGHT> {         [           Right ] };
  1465.     key  <END> {         [             End ] };
  1466.     key <DOWN> {         [            Down ] };
  1467.     key <PGDN> {         [            Next ] };
  1468.     key  <INS> {         [          Insert ] };
  1469.     key <DELE> {         [          Delete ] };
  1470.     key <MUTE> {         [   XF86AudioMute ] };
  1471.     key <VOL-> {         [ XF86AudioLowerVolume ] };
  1472.     key <VOL+> {         [ XF86AudioRaiseVolume ] };
  1473.     key <POWR> {         [    XF86PowerOff ] };
  1474.     key <KPEQ> {         [        KP_Equal ] };
  1475.     key <I126> {         [       plusminus ] };
  1476.     key <PAUS> {
  1477.         type= "PC_CONTROL_LEVEL2",
  1478.         symbols[Group1]= [           Pause,           Break ]
  1479.     };
  1480.     key <I128> {         [     XF86LaunchA ] };
  1481.     key <I129> {         [      KP_Decimal,      KP_Decimal ] };
  1482.     key <HNGL> {         [          Hangul ] };
  1483.     key <HJCV> {         [    Hangul_Hanja ] };
  1484.     key <LWIN> {         [         Super_L ] };
  1485.     key <RWIN> {         [         Super_R ] };
  1486.     key <COMP> {         [     Mode_switch ] };
  1487.     key <STOP> {         [          Cancel ] };
  1488.     key <AGAI> {         [            Redo ] };
  1489.     key <PROP> {         [        SunProps ] };
  1490.     key <UNDO> {         [            Undo ] };
  1491.     key <FRNT> {         [        SunFront ] };
  1492.     key <COPY> {         [        XF86Copy ] };
  1493.     key <OPEN> {         [        XF86Open ] };
  1494.     key <PAST> {         [       XF86Paste ] };
  1495.     key <FIND> {         [            Find ] };
  1496.     key  <CUT> {         [         XF86Cut ] };
  1497.     key <HELP> {         [            Help ] };
  1498.     key <I147> {         [      XF86MenuKB ] };
  1499.     key <I148> {         [  XF86Calculator ] };
  1500.     key <I150> {         [       XF86Sleep ] };
  1501.     key <I151> {         [      XF86WakeUp ] };
  1502.     key <I152> {         [    XF86Explorer ] };
  1503.     key <I153> {         [        XF86Send ] };
  1504.     key <I155> {         [        XF86Xfer ] };
  1505.     key <I156> {         [     XF86Launch1 ] };
  1506.     key <I157> {         [     XF86Launch2 ] };
  1507.     key <I158> {         [         XF86WWW ] };
  1508.     key <I159> {         [         XF86DOS ] };
  1509.     key <I160> {         [ XF86ScreenSaver ] };
  1510.     key <I161> {         [ XF86RotateWindows ] };
  1511.     key <I162> {         [    XF86TaskPane ] };
  1512.     key <I163> {         [        XF86Mail ] };
  1513.     key <I164> {         [   XF86Favorites ] };
  1514.     key <I165> {         [  XF86MyComputer ] };
  1515.     key <I166> {         [        XF86Back ] };
  1516.     key <I167> {         [     XF86Forward ] };
  1517.     key <I169> {         [       XF86Eject ] };
  1518.     key <I170> {         [       XF86Eject,       XF86Eject ] };
  1519.     key <I171> {         [   XF86AudioNext ] };
  1520.     key <I172> {         [   XF86AudioPlay,  XF86AudioPause ] };
  1521.     key <I173> {         [   XF86AudioPrev ] };
  1522.     key <I174> {         [   XF86AudioStop,       XF86Eject ] };
  1523.     key <I175> {         [ XF86AudioRecord ] };
  1524.     key <I176> {         [ XF86AudioRewind ] };
  1525.     key <I177> {         [       XF86Phone ] };
  1526.     key <I179> {         [       XF86Tools ] };
  1527.     key <I180> {         [    XF86HomePage ] };
  1528.     key <I181> {         [      XF86Reload ] };
  1529.     key <I182> {         [       XF86Close ] };
  1530.     key <I185> {         [    XF86ScrollUp ] };
  1531.     key <I186> {         [  XF86ScrollDown ] };
  1532.     key <I187> {         [       parenleft ] };
  1533.     key <I188> {         [      parenright ] };
  1534.     key <I189> {         [         XF86New ] };
  1535.     key <I190> {         [            Redo ] };
  1536.     key <FK13> {         [       XF86Tools ] };
  1537.     key <FK14> {         [     XF86Launch5 ] };
  1538.     key <FK15> {         [     XF86Launch6 ] };
  1539.     key <FK16> {         [     XF86Launch7 ] };
  1540.     key <FK17> {         [     XF86Launch8 ] };
  1541.     key <FK18> {         [     XF86Launch9 ] };
  1542.     key <FK20> {         [ XF86AudioMicMute ] };
  1543.     key <FK21> {         [ XF86TouchpadToggle ] };
  1544.     key <FK22> {         [  XF86TouchpadOn ] };
  1545.     key <FK23> {         [ XF86TouchpadOff ] };
  1546.     key <MDSW> {         [     Mode_switch ] };
  1547.     key  <ALT> {         [        NoSymbol,           Alt_L ] };
  1548.     key <META> {         [        NoSymbol,          Meta_L ] };
  1549.     key <SUPR> {         [        NoSymbol,         Super_L ] };
  1550.     key <HYPR> {         [        NoSymbol,         Hyper_L ] };
  1551.     key <I208> {         [   XF86AudioPlay ] };
  1552.     key <I209> {         [  XF86AudioPause ] };
  1553.     key <I210> {         [     XF86Launch3 ] };
  1554.     key <I211> {         [     XF86Launch4 ] };
  1555.     key <I212> {         [     XF86LaunchB ] };
  1556.     key <I213> {         [     XF86Suspend ] };
  1557.     key <I214> {         [       XF86Close ] };
  1558.     key <I215> {         [   XF86AudioPlay ] };
  1559.     key <I216> {         [ XF86AudioForward ] };
  1560.     key <I218> {         [           Print ] };
  1561.     key <I220> {         [      XF86WebCam ] };
  1562.     key <I223> {         [        XF86Mail ] };
  1563.     key <I224> {         [   XF86Messenger ] };
  1564.     key <I225> {         [      XF86Search ] };
  1565.     key <I226> {         [          XF86Go ] };
  1566.     key <I227> {         [     XF86Finance ] };
  1567.     key <I228> {         [        XF86Game ] };
  1568.     key <I229> {         [        XF86Shop ] };
  1569.     key <I231> {         [          Cancel ] };
  1570.     key <I232> {         [ XF86MonBrightnessDown ] };
  1571.     key <I233> {         [ XF86MonBrightnessUp ] };
  1572.     key <I234> {         [  XF86AudioMedia ] };
  1573.     key <I235> {         [     XF86Display ] };
  1574.     key <I236> {         [ XF86KbdLightOnOff ] };
  1575.     key <I237> {         [ XF86KbdBrightnessDown ] };
  1576.     key <I238> {         [ XF86KbdBrightnessUp ] };
  1577.     key <I239> {         [        XF86Send ] };
  1578.     key <I240> {         [       XF86Reply ] };
  1579.     key <I241> {         [ XF86MailForward ] };
  1580.     key <I242> {         [        XF86Save ] };
  1581.     key <I243> {         [   XF86Documents ] };
  1582.     key <I244> {         [     XF86Battery ] };
  1583.     key <I245> {         [   XF86Bluetooth ] };
  1584.     key <I246> {         [        XF86WLAN ] };
  1585.     modifier_map Lock { <ESC> };
  1586.     modifier_map Shift { <LFSH> };
  1587.     modifier_map Shift { <RTSH> };
  1588.     modifier_map Mod1 { <LALT> };
  1589.     modifier_map Mod2 { <NMLK> };
  1590.     modifier_map Mod5 { <LVL3> };
  1591.     modifier_map Control { <LSGT> };
  1592.     modifier_map Control { <RCTL> };
  1593.     modifier_map Mod1 { <RALT> };
  1594.     modifier_map Mod4 { <LWIN> };
  1595.     modifier_map Mod4 { <RWIN> };
  1596.     modifier_map Mod1 { <COMP> };
  1597.     modifier_map Mod5 { <MDSW> };
  1598.     modifier_map Mod1 { <META> };
  1599.     modifier_map Mod4 { <SUPR> };
  1600.     modifier_map Mod4 { <HYPR> };
  1601. };
  1602.  
  1603. xkb_geometry "pc(pc105)" {
  1604.  
  1605.     width=       470;
  1606.     height=      180;
  1607.  
  1608.     alias <AC00> = <CAPS>;
  1609.     alias <AA00> = <LCTL>;
  1610.  
  1611.     baseColor=   "white";
  1612.     labelColor=  "black";
  1613.     xfont=       "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
  1614.     description= "Generic 105";
  1615.  
  1616.     shape "NORM" {
  1617.         corner= 1,
  1618.         { [  18,  18 ] },
  1619.         { [   2,   1 ], [  16,  16 ] }
  1620.     };
  1621.     shape "BKSP" {
  1622.         corner= 1,
  1623.         { [  38,  18 ] },
  1624.         { [   2,   1 ], [  36,  16 ] }
  1625.     };
  1626.     shape "TABK" {
  1627.         corner= 1,
  1628.         { [  28,  18 ] },
  1629.         { [   2,   1 ], [  26,  16 ] }
  1630.     };
  1631.     shape "BKSL" {
  1632.         corner= 1,
  1633.         { [  28,  18 ] },
  1634.         { [   2,   1 ], [  26,  16 ] }
  1635.     };
  1636.     shape "RTRN" {
  1637.         corner= 1,
  1638.         { [   0,   0 ], [  28,   0 ], [  28,  37 ], [   5,  37 ],
  1639.           [   5,  18 ], [   0,  18 ] },
  1640.         { [   2,   1 ], [  26,   1 ], [  26,  35 ], [   7,  35 ],
  1641.           [   7,  16 ], [   2,  16 ] },
  1642.         approx= { [   5,   0 ], [  28,  37 ] }
  1643.     };
  1644.     shape "CAPS" {
  1645.         corner= 1,
  1646.         { [  33,  18 ] },
  1647.         { [   2,   1 ], [  31,  16 ] }
  1648.     };
  1649.     shape "LFSH" {
  1650.         corner= 1,
  1651.         { [  25,  18 ] },
  1652.         { [   2,   1 ], [  23,  16 ] }
  1653.     };
  1654.     shape "RTSH" {
  1655.         corner= 1,
  1656.         { [  50,  18 ] },
  1657.         { [   2,   1 ], [  48,  16 ] }
  1658.     };
  1659.     shape "MODK" {
  1660.         corner= 1,
  1661.         { [  27,  18 ] },
  1662.         { [   2,   1 ], [  25,  16 ] }
  1663.     };
  1664.     shape "SMOD" {
  1665.         corner= 1,
  1666.         { [  23,  18 ] },
  1667.         { [   2,   1 ], [  21,  16 ] }
  1668.     };
  1669.     shape "SPCE" {
  1670.         corner= 1,
  1671.         { [ 113,  18 ] },
  1672.         { [   2,   1 ], [ 111,  16 ] }
  1673.     };
  1674.     shape "KP0" {
  1675.         corner= 1,
  1676.         { [  37,  18 ] },
  1677.         { [   2,   1 ], [  35,  16 ] }
  1678.     };
  1679.     shape "KPAD" {
  1680.         corner= 1,
  1681.         { [  18,  37 ] },
  1682.         { [   2,   1 ], [  16,  35 ] }
  1683.     };
  1684.     shape "LEDS" { { [  75,  20 ] } };
  1685.     shape "LED" { { [   5,   1 ] } };
  1686.     section "Function" {
  1687.         key.color= "grey20";
  1688.         priority=  7;
  1689.         top=       22;
  1690.         left=      19;
  1691.         width=     351;
  1692.         height=    19;
  1693.         row {
  1694.             top=  1;
  1695.             left= 1;
  1696.             keys {
  1697.                 {  <ESC>, "NORM",   1 },
  1698.                 { <FK01>, "NORM",  20, color="white" },
  1699.                 { <FK02>, "NORM",   1, color="white" },
  1700.                 { <FK03>, "NORM",   1, color="white" },
  1701.                 { <FK04>, "NORM",   1, color="white" },
  1702.                 { <FK05>, "NORM",  11, color="white" },
  1703.                 { <FK06>, "NORM",   1, color="white" },
  1704.                 { <FK07>, "NORM",   1, color="white" },
  1705.                 { <FK08>, "NORM",   1, color="white" },
  1706.                 { <FK09>, "NORM",  11, color="white" },
  1707.                 { <FK10>, "NORM",   1, color="white" },
  1708.                 { <FK11>, "NORM",   1, color="white" },
  1709.                 { <FK12>, "NORM",   1, color="white" },
  1710.                 { <PRSC>, "NORM",   8, color="white" },
  1711.                 { <SCLK>, "NORM",   1, color="white" },
  1712.                 { <PAUS>, "NORM",   1, color="white" }
  1713.             };
  1714.         };
  1715.     }; // End of "Function" section
  1716.  
  1717.     section "Alpha" {
  1718.         key.color= "white";
  1719.         priority=  8;
  1720.         top=       61;
  1721.         left=      19;
  1722.         width=     287;
  1723.         height=    95;
  1724.         row {
  1725.             top=  1;
  1726.             left= 1;
  1727.             keys {
  1728.                 { <TLDE>, "NORM",   1 }, { <AE01>, "NORM",   1 },
  1729.                 { <AE02>, "NORM",   1 }, { <AE03>, "NORM",   1 },
  1730.                 { <AE04>, "NORM",   1 }, { <AE05>, "NORM",   1 },
  1731.                 { <AE06>, "NORM",   1 }, { <AE07>, "NORM",   1 },
  1732.                 { <AE08>, "NORM",   1 }, { <AE09>, "NORM",   1 },
  1733.                 { <AE10>, "NORM",   1 }, { <AE11>, "NORM",   1 },
  1734.                 { <AE12>, "NORM",   1 },
  1735.                 { <BKSP>, "BKSP",   1, color="grey20" }
  1736.             };
  1737.         };
  1738.         row {
  1739.             top=  20;
  1740.             left= 1;
  1741.             keys {
  1742.                 {  <TAB>, "TABK",   1, color="grey20" },
  1743.                 { <AD01>, "NORM",   1 }, { <AD02>, "NORM",   1 },
  1744.                 { <AD03>, "NORM",   1 }, { <AD04>, "NORM",   1 },
  1745.                 { <AD05>, "NORM",   1 }, { <AD06>, "NORM",   1 },
  1746.                 { <AD07>, "NORM",   1 }, { <AD08>, "NORM",   1 },
  1747.                 { <AD09>, "NORM",   1 }, { <AD10>, "NORM",   1 },
  1748.                 { <AD11>, "NORM",   1 }, { <AD12>, "NORM",   1 },
  1749.                 { <RTRN>, "RTRN",   1, color="grey20" }
  1750.             };
  1751.         };
  1752.         row {
  1753.             top=  39;
  1754.             left= 1;
  1755.             keys {
  1756.                 { <CAPS>, "CAPS",   1, color="grey20" },
  1757.                 { <AC01>, "NORM",   1 }, { <AC02>, "NORM",   1 },
  1758.                 { <AC03>, "NORM",   1 }, { <AC04>, "NORM",   1 },
  1759.                 { <AC05>, "NORM",   1 }, { <AC06>, "NORM",   1 },
  1760.                 { <AC07>, "NORM",   1 }, { <AC08>, "NORM",   1 },
  1761.                 { <AC09>, "NORM",   1 }, { <AC10>, "NORM",   1 },
  1762.                 { <AC11>, "NORM",   1 }, { <BKSL>, "NORM",   1 }
  1763.             };
  1764.         };
  1765.         row {
  1766.             top=  58;
  1767.             left= 1;
  1768.             keys {
  1769.                 { <LFSH>, "LFSH",   1, color="grey20" },
  1770.                 { <LSGT>, "NORM",   1 }, { <AB01>, "NORM",   1 },
  1771.                 { <AB02>, "NORM",   1 }, { <AB03>, "NORM",   1 },
  1772.                 { <AB04>, "NORM",   1 }, { <AB05>, "NORM",   1 },
  1773.                 { <AB06>, "NORM",   1 }, { <AB07>, "NORM",   1 },
  1774.                 { <AB08>, "NORM",   1 }, { <AB09>, "NORM",   1 },
  1775.                 { <AB10>, "NORM",   1 },
  1776.                 { <RTSH>, "RTSH",   1, color="grey20" }
  1777.             };
  1778.         };
  1779.         row {
  1780.             top=  77;
  1781.             left= 1;
  1782.             keys {
  1783.                 { <LCTL>, "MODK",   1, color="grey20" },
  1784.                 { <LWIN>, "SMOD",   1, color="grey20" },
  1785.                 { <LALT>, "SMOD",   1, color="grey20" },
  1786.                 { <SPCE>, "SPCE",   1 },
  1787.                 { <RALT>, "SMOD",   1, color="grey20" },
  1788.                 { <RWIN>, "SMOD",   1, color="grey20" },
  1789.                 { <MENU>, "SMOD",   1, color="grey20" },
  1790.                 { <RCTL>, "SMOD",   1, color="grey20" }
  1791.             };
  1792.         };
  1793.     }; // End of "Alpha" section
  1794.  
  1795.     section "Editing" {
  1796.         key.color= "grey20";
  1797.         priority=  9;
  1798.         top=       61;
  1799.         left=      312;
  1800.         width=     58;
  1801.         height=    95;
  1802.         row {
  1803.             top=  1;
  1804.             left= 1;
  1805.             keys {
  1806.                 {  <INS>, "NORM",   1 }, { <HOME>, "NORM",   1 },
  1807.                 { <PGUP>, "NORM",   1 }
  1808.             };
  1809.         };
  1810.         row {
  1811.             top=  20;
  1812.             left= 1;
  1813.             keys {
  1814.                 { <DELE>, "NORM",   1 }, {  <END>, "NORM",   1 },
  1815.                 { <PGDN>, "NORM",   1 }
  1816.             };
  1817.         };
  1818.         row {
  1819.             top=  58;
  1820.             left= 20;
  1821.             keys {
  1822.                 {   <UP>, "NORM",   1 }
  1823.             };
  1824.         };
  1825.         row {
  1826.             top=  77;
  1827.             left= 1;
  1828.             keys {
  1829.                 { <LEFT>, "NORM",   1 }, { <DOWN>, "NORM",   1 },
  1830.                 { <RGHT>, "NORM",   1 }
  1831.             };
  1832.         };
  1833.     }; // End of "Editing" section
  1834.  
  1835.     section "Keypad" {
  1836.         key.color= "grey20";
  1837.         priority=  10;
  1838.         top=       61;
  1839.         left=      376;
  1840.         width=     77;
  1841.         height=    95;
  1842.         row {
  1843.             top=  1;
  1844.             left= 1;
  1845.             keys {
  1846.                 { <NMLK>, "NORM",   1 }, { <KPDV>, "NORM",   1 },
  1847.                 { <KPMU>, "NORM",   1 }, { <KPSU>, "NORM",   1 }
  1848.             };
  1849.         };
  1850.         row {
  1851.             top=  20;
  1852.             left= 1;
  1853.             keys {
  1854.                 {  <KP7>, "NORM",   1, color="white" },
  1855.                 {  <KP8>, "NORM",   1, color="white" },
  1856.                 {  <KP9>, "NORM",   1, color="white" },
  1857.                 { <KPAD>, "KPAD",   1 }
  1858.             };
  1859.         };
  1860.         row {
  1861.             top=  39;
  1862.             left= 1;
  1863.             keys {
  1864.                 {  <KP4>, "NORM",   1, color="white" },
  1865.                 {  <KP5>, "NORM",   1, color="white" },
  1866.                 {  <KP6>, "NORM",   1, color="white" }
  1867.             };
  1868.         };
  1869.         row {
  1870.             top=  58;
  1871.             left= 1;
  1872.             keys {
  1873.                 {  <KP1>, "NORM",   1, color="white" },
  1874.                 {  <KP2>, "NORM",   1, color="white" },
  1875.                 {  <KP3>, "NORM",   1, color="white" },
  1876.                 { <KPEN>, "KPAD",   1 }
  1877.             };
  1878.         };
  1879.         row {
  1880.             top=  77;
  1881.             left= 1;
  1882.             keys {
  1883.                 {  <KP0>, "KP0",   1, color="white" },
  1884.                 { <KPDL>, "NORM",   1, color="white" }
  1885.             };
  1886.         };
  1887.     }; // End of "Keypad" section
  1888.  
  1889.     solid "LedPanel" {
  1890.         top=      22;
  1891.         left=     377;
  1892.         priority= 0;
  1893.         color= "grey10";
  1894.         shape= "LEDS";
  1895.     };
  1896.     indicator "Num Lock" {
  1897.         top=      37;
  1898.         left=     382;
  1899.         priority= 1;
  1900.         onColor= "green";
  1901.         offColor= "green30";
  1902.         shape= "LED";
  1903.     };
  1904.     indicator "Caps Lock" {
  1905.         top=      37;
  1906.         left=     407;
  1907.         priority= 2;
  1908.         onColor= "green";
  1909.         offColor= "green30";
  1910.         shape= "LED";
  1911.     };
  1912.     indicator "Scroll Lock" {
  1913.         top=      37;
  1914.         left=     433;
  1915.         priority= 3;
  1916.         onColor= "green";
  1917.         offColor= "green30";
  1918.         shape= "LED";
  1919.     };
  1920.     text "NumLockLabel" {
  1921.         top=      25;
  1922.         left=     378;
  1923.         priority= 4;
  1924.         width=  19.8;
  1925.         height=  10;
  1926.         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
  1927.         text=  "Num\nLock";
  1928.     };
  1929.     text "CapsLockLabel" {
  1930.         top=      25;
  1931.         left=     403;
  1932.         priority= 5;
  1933.         width=  26.4;
  1934.         height=  10;
  1935.         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
  1936.         text=  "Caps\nLock";
  1937.     };
  1938.     text "ScrollLockLabel" {
  1939.         top=      25;
  1940.         left=     428;
  1941.         priority= 6;
  1942.         width=  39.6;
  1943.         height=  10;
  1944.         XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
  1945.         text=  "Scroll\nLock";
  1946.     };
  1947. };
  1948.  
  1949. };
  1950.