Home | History | Annotate | Line # | Download | only in symbols
level3 revision 1.1.1.5
      1 // these variants assign various XKB keycodes to ISO_Level3_Shift so that
      2 // the third shift level can be reached
      3 //
      4 
      5 // Ensure a mapping to a real modifier for LevelThree
      6 partial modifier_keys
      7 xkb_symbols "modifier_mapping" {
      8   key.type[Group1] = "ONE_LEVEL";
      9 
     10   replace key <LVL3> {
     11     symbols[Group1] = [ ISO_Level3_Shift ]
     12   };
     13   modifier_map Mod5 { <LVL3> };
     14 };
     15 
     16 // the default behavior is for the right Alt key (AltGr) to generate the
     17 // third engraved symbol
     18 default partial modifier_keys
     19 xkb_symbols "ralt_switch" {
     20   key <RALT> {
     21     type[Group1]="ONE_LEVEL",
     22     symbols[Group1] = [ ISO_Level3_Shift ]
     23     };
     24   include "level3(modifier_mapping)"
     25 };
     26 
     27 // Right Alt key never chooses 3rd level.
     28 // This option attempts to undo the effect of a layout's
     29 // including ralt_switch.  You may also want to select another
     30 // level3 option that maps the level3 shift to some other key.
     31 partial modifier_keys
     32 xkb_symbols "ralt_alt" {
     33   key <RALT> { 
     34     type[Group1]="TWO_LEVEL",
     35     type[Group2]="TWO_LEVEL",
     36     type[Group3]="TWO_LEVEL",
     37     type[Group4]="TWO_LEVEL",
     38     symbols[Group1] = [ Alt_R, Meta_R ], 
     39     symbols[Group2] = [ Alt_R, Meta_R ], 
     40     symbols[Group3] = [ Alt_R, Meta_R ], 
     41     symbols[Group4] = [ Alt_R, Meta_R ]
     42     };
     43   modifier_map Mod1    { <RALT> };
     44 };
     45 
     46 partial modifier_keys
     47 xkb_symbols "ralt_switch_multikey" {
     48   key <RALT> {
     49     type[Group1]="TWO_LEVEL",
     50     symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
     51     };
     52   include "level3(modifier_mapping)"
     53 };
     54 
     55 // special case or right Alt switch - for use with grp:alts_toggle
     56 //
     57 partial hidden modifier_keys
     58 xkb_symbols "ralt_switch_for_alts_toggle" {
     59  virtual_modifiers LAlt, AlGr;
     60   key <LALT> {
     61     type[Group1]="PC_RALT_LEVEL2",
     62     symbols[Group1] = [ Alt_L,  ISO_Prev_Group,  ISO_Prev_Group ],
     63     virtualMods= LAlt
     64   };
     65   key <RALT> {
     66     type[Group1]="PC_ALT_LEVEL2",
     67     symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
     68     virtualMods= AltGr
     69   };
     70   include "level3(modifier_mapping)"
     71 };
     72 
     73 // using the level(alt_switch) map, either Alt key temporarily chooses
     74 // the third shift level.  (Mostly be used to imitate Mac OS functionality.)
     75 partial modifier_keys
     76 xkb_symbols "alt_switch" {
     77   include "level3(lalt_switch)"
     78   include "level3(ralt_switch)"
     79 };
     80 
     81 partial modifier_keys
     82 xkb_symbols "lalt_switch" {
     83   key <LALT> {
     84     type[Group1]="ONE_LEVEL",
     85     symbols[Group1] = [ ISO_Level3_Shift ]
     86     };
     87   include "level3(modifier_mapping)"
     88 };
     89 
     90 // using the level(switch) map, the right Control key temporarily
     91 // chooses the third shift level (until it is released).
     92 partial modifier_keys
     93 xkb_symbols "switch" {
     94   key <RCTL> {
     95     type[Group1]="ONE_LEVEL",
     96     symbols[Group1] = [ ISO_Level3_Shift ]
     97     };
     98   include "level3(modifier_mapping)"
     99 };
    100 
    101 // using the level(menu_switch) map, the Menu key temporarily
    102 // chooses the third shift level (until it is released).
    103 partial modifier_keys
    104 xkb_symbols "menu_switch" {
    105   key <MENU> {
    106     type[Group1]="ONE_LEVEL",
    107     symbols[Group1] = [ ISO_Level3_Shift ]
    108     };
    109   include "level3(modifier_mapping)"
    110 };
    111 
    112 // using the level3(win_switch) map, the either Windows' logo key
    113 // temporarily chooses the third shift level.
    114 partial modifier_keys
    115 xkb_symbols "win_switch" {
    116   include "level3(lwin_switch)"
    117   include "level3(rwin_switch)"
    118 };
    119 
    120 // using the level3(lwin_switch) map, the left Windows' logo key
    121 // temporarily chooses the third shift level.
    122 partial modifier_keys
    123 xkb_symbols "lwin_switch" {
    124   key <LWIN> {
    125     type[Group1]="ONE_LEVEL",
    126     symbols[Group1] = [ ISO_Level3_Shift ]
    127     };
    128   include "level3(modifier_mapping)"
    129 };
    130 
    131 // using the level(rwin_switch) map, the right Windows' logo key
    132 // temporarily chooses the third shift level.  If you use this map,
    133 // you should define your keyboard as pc101 or pc102 instead of pc104
    134 // or pc105.
    135 partial modifier_keys
    136 xkb_symbols "rwin_switch" {
    137   key <RWIN> {
    138     type[Group1]="ONE_LEVEL",
    139     symbols[Group1] = [ ISO_Level3_Shift ]
    140     };
    141   include "level3(modifier_mapping)"
    142 };
    143 
    144 // using the level3(enter_switch) map, the Enter key on the keypad
    145 // temporarily chooses the third shift level.  This is especially
    146 // useful for Mac laptops which miss the right Alt key.
    147 partial modifier_keys
    148 xkb_symbols "enter_switch" {
    149   key <KPEN> {
    150     type[Group1]="ONE_LEVEL",
    151     symbols[Group1] = [ ISO_Level3_Shift ]
    152     };
    153   include "level3(modifier_mapping)"
    154 };
    155 
    156 partial modifier_keys
    157 xkb_symbols "caps_switch" {
    158   key <CAPS> {
    159     type[Group1]="ONE_LEVEL",
    160     symbols[Group1] = [ ISO_Level3_Shift ]
    161   };
    162   include "level3(modifier_mapping)"
    163 };
    164 
    165 partial modifier_keys
    166 xkb_symbols "bksl_switch" {
    167   key <BKSL> {
    168     type[Group1]="ONE_LEVEL",
    169     symbols[Group1] = [ ISO_Level3_Shift ]
    170   };
    171   include "level3(modifier_mapping)"
    172 };
    173 
    174 partial modifier_keys
    175 xkb_symbols "lsgt_switch" {
    176   key <LSGT> {
    177     type[Group1]="ONE_LEVEL",
    178     symbols[Group1] = [ ISO_Level3_Shift ]
    179   };
    180   include "level3(modifier_mapping)"
    181 };
    182 
    183 partial modifier_keys
    184 xkb_symbols "caps_switch_latch" {
    185   key <CAPS> {
    186     type[Group1]="THREE_LEVEL",
    187     symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
    188   };
    189   include "level3(modifier_mapping)"
    190 };
    191 
    192 partial modifier_keys
    193 xkb_symbols "bksl_switch_latch" {
    194   key <BKSL> {
    195     type[Group1]="THREE_LEVEL",
    196     symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
    197   };
    198   include "level3(modifier_mapping)"
    199 };
    200 
    201 partial modifier_keys
    202 xkb_symbols "lsgt_switch_latch" {
    203   key <LSGT> {
    204     type[Group1]="THREE_LEVEL",
    205     symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
    206   };
    207   include "level3(modifier_mapping)"
    208 };
    209