153 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			153 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
// These partial variants assign ISO_Level5_Shift to various XKB keycodes
 | 
						|
// so that the fifth shift level can be reached.
 | 
						|
 | 
						|
// The right Ctrl key (while pressed) chooses the fifth shift level.
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "rctrl_switch" {
 | 
						|
  key <RCTL> {
 | 
						|
    type[Group1]="ONE_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift ]
 | 
						|
  };
 | 
						|
  include "level5(modifier_mapping)"
 | 
						|
};
 | 
						|
 | 
						|
// The Less/Greater key (while pressed) chooses the fifth shift level.
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lsgt_switch" {
 | 
						|
  key <LSGT> {
 | 
						|
    type[Group1]="ONE_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift ]
 | 
						|
  };
 | 
						|
  include "level5(modifier_mapping)"
 | 
						|
};
 | 
						|
 | 
						|
// The right Alt key (while pressed) chooses the fifth shift level.
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "ralt_switch" {
 | 
						|
  key <RALT> {
 | 
						|
    type[Group1]="ONE_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift ]
 | 
						|
  };
 | 
						|
  include "level5(modifier_mapping)"
 | 
						|
};
 | 
						|
 | 
						|
// The CapsLock key (while pressed) chooses the fifth shift level.
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "caps_switch" {
 | 
						|
  key <CAPS> {
 | 
						|
    type[Group1]="ONE_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift ]
 | 
						|
  };
 | 
						|
  include "level5(modifier_mapping)"
 | 
						|
};
 | 
						|
 | 
						|
// Ensure a mapping to a real modifier for LevelFive.
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "modifier_mapping" {
 | 
						|
  replace key <MDSW> {
 | 
						|
    type[Group1] = "ONE_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift ]
 | 
						|
  };
 | 
						|
  modifier_map Mod3 { <MDSW> };
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
// This adds the definitions needed to create a level5-lock behaviour, using
 | 
						|
// the real modifier NumLock as a lock indicator.
 | 
						|
// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK
 | 
						|
// See also: compat/level5(level5_lock)
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lock" {
 | 
						|
  key.type[Group1] = "ONE_LEVEL";
 | 
						|
  include "level5(modifier_mapping)"
 | 
						|
  replace key <HYPR> {
 | 
						|
    vmods = NumLock,
 | 
						|
    symbols[Group1] = [ NoSymbol ],
 | 
						|
    actions[Group1] = [ SetMods(modifiers=NumLock) ]
 | 
						|
  };
 | 
						|
  modifier_map Mod2 { <HYPR> };
 | 
						|
};
 | 
						|
 | 
						|
// The following modifier keys are used to switch to the third shift level
 | 
						|
// and to set a corresponding lock, implemented as NumLock.
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lsgt_switch_lock" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <LSGT> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lwin_switch_lock" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <LWIN> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "ralt_switch_lock" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <RALT> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "rwin_switch_lock" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <RWIN> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lsgt_switch_lock_cancel" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <LSGT> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "lwin_switch_lock_cancel" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <LWIN> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "ralt_switch_lock_cancel" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <RALT> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 | 
						|
 | 
						|
partial modifier_keys
 | 
						|
xkb_symbols "rwin_switch_lock_cancel" {
 | 
						|
  include "level5(lock)"
 | 
						|
  key <RWIN> {
 | 
						|
    type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK",
 | 
						|
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
 | 
						|
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
 | 
						|
  };
 | 
						|
};
 |