| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- // These partial variants assign ISO_Level3_Shift to various XKB keycodes
- // so that the third shift level can be reached.
- // The default behaviour:
- // the right Alt key (AltGr) chooses the third symbol engraved on a key.
- default partial modifier_keys
- xkb_symbols "ralt_switch" {
- key <RALT> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- partial modifier_keys
- xkb_symbols "ralt_latch" {
- key <RALT> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Latch ]
- };
- include "level3(modifier_mapping)"
- };
- // Ensure a mapping to a real modifier for LevelThree.
- partial modifier_keys
- xkb_symbols "modifier_mapping" {
- replace key <LVL3> {
- type[Group1] = "ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- modifier_map Mod5 { <LVL3> };
- };
- // The right Alt key never chooses the third level.
- // This option attempts to undo the effect of a layout's inclusion of
- // 'ralt_switch'. You may want to also select another level3 option
- // to map the level3 shift to some other key.
- partial modifier_keys
- xkb_symbols "ralt_alt" {
- key <RALT> {
- type[Group1]="TWO_LEVEL",
- type[Group2]="TWO_LEVEL",
- type[Group3]="TWO_LEVEL",
- type[Group4]="TWO_LEVEL",
- symbols[Group1] = [ Alt_R, Meta_R ],
- symbols[Group2] = [ Alt_R, Meta_R ],
- symbols[Group3] = [ Alt_R, Meta_R ],
- symbols[Group4] = [ Alt_R, Meta_R ]
- };
- modifier_map Mod1 { <RALT> };
- };
- // The right Alt key (while pressed) chooses the third shift level,
- // and Compose is mapped to its second level.
- partial modifier_keys
- xkb_symbols "ralt_switch_multikey" {
- key <RALT> {
- type[Group1]="TWO_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift, Multi_key ]
- };
- include "level3(modifier_mapping)"
- };
- // A special case of the right-Alt switch -- for use with grp:alts_toggle.
- hidden partial modifier_keys
- xkb_symbols "ralt_switch_for_alts_toggle" {
- virtual_modifiers LAlt, AltGr;
- key <LALT> {
- type[Group1]="PC_RALT_LEVEL2",
- symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ],
- virtualMods= LAlt
- };
- key <RALT> {
- type[Group1]="PC_ALT_LEVEL2",
- symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ],
- virtualMods= AltGr
- };
- include "level3(modifier_mapping)"
- };
- // Either Alt key (while pressed) chooses the third shift level.
- // (To be used mostly to imitate Mac OS functionality.)
- partial modifier_keys
- xkb_symbols "alt_switch" {
- include "level3(lalt_switch)"
- include "level3(ralt_switch)"
- };
- // The left Alt key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "lalt_switch" {
- key <LALT> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The right Ctrl key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "switch" {
- key <RCTL> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The Menu key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "menu_switch" {
- key <MENU> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // Either Win key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "win_switch" {
- include "level3(lwin_switch)"
- include "level3(rwin_switch)"
- };
- // The left Win key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "lwin_switch" {
- key <LWIN> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The right Win key (while pressed) chooses the third shift level.
- // (When using this map, you should set your keyboard as pc101 or pc102
- // instead of pc104 or pc105.)
- partial modifier_keys
- xkb_symbols "rwin_switch" {
- key <RWIN> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The Enter key on the kepypad (while pressed) chooses the third shift level.
- // (This is especially useful for Mac laptops which miss the right Alt key.)
- partial modifier_keys
- xkb_symbols "enter_switch" {
- key <KPEN> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The CapsLock key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "caps_switch" {
- key <CAPS> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The Backslash key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "bksl_switch" {
- key <BKSL> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The Less/Greater key (while pressed) chooses the third shift level.
- partial modifier_keys
- xkb_symbols "lsgt_switch" {
- key <LSGT> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // The CapsLock key (while pressed) chooses the third shift level,
- // and latches when pressed together with another third-level chooser.
- partial modifier_keys
- xkb_symbols "caps_switch_latch" {
- key <CAPS> {
- type[Group1]="THREE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
- };
- include "level3(modifier_mapping)"
- };
- // The Backslash key (while pressed) chooses the third shift level,
- // and latches when pressed together with another third-level chooser.
- partial modifier_keys
- xkb_symbols "bksl_switch_latch" {
- key <BKSL> {
- type[Group1]="THREE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
- };
- include "level3(modifier_mapping)"
- };
- partial modifier_keys
- xkb_symbols "bksl_latch_no_lock" {
- virtual_modifiers LevelThree;
- key <BKSL> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Latch ],
- actions[Group1] = [ LatchMods(modifiers=LevelThree, !clearLocks, !latchToLock)]
- };
- };
- // The Less/Greater key (while pressed) chooses the third shift level,
- // and latches when pressed together with another third-level chooser.
- partial modifier_keys
- xkb_symbols "lsgt_switch_latch" {
- key <LSGT> {
- type[Group1]="THREE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ]
- };
- include "level3(modifier_mapping)"
- };
- partial modifier_keys
- xkb_symbols "lsgt_latch" {
- key <LSGT> {
- type[Group1]="ONE_LEVEL",
- symbols[Group1] = [ ISO_Level3_Latch ]
- };
- };
- // Number key 4 chooses third shift level when pressed in isolation.
- partial modifier_keys
- xkb_symbols "4_switch_isolated" {
- override key <AE04> {
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
- // Number key 9 chooses third shift level when pressed in isolation.
- partial modifier_keys
- xkb_symbols "9_switch_isolated" {
- override key <AE09> {
- symbols[Group1] = [ ISO_Level3_Shift ]
- };
- include "level3(modifier_mapping)"
- };
|