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