aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkbdata.src/symbols/level5
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/xkbdata.src/symbols/level5')
-rw-r--r--xorg-server/xkbdata.src/symbols/level548
1 files changed, 48 insertions, 0 deletions
diff --git a/xorg-server/xkbdata.src/symbols/level5 b/xorg-server/xkbdata.src/symbols/level5
index 87ecfaa55..921592a76 100644
--- a/xorg-server/xkbdata.src/symbols/level5
+++ b/xorg-server/xkbdata.src/symbols/level5
@@ -16,3 +16,51 @@ xkb_symbols "rctrl_switch" {
};
modifier_map Mod3 { ISO_Level5_Shift };
};
+
+// The following modifier keys are used to switch to the third shift and to set a
+// corresponding lock, implemented as NumLock.
+
+partial modifier_keys
+xkb_symbols "lock" {
+ // 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)
+ key.type[Group1] = "ONE_LEVEL";
+
+ replace key <MDSW> {
+ vmods = LevelFive,
+ symbols[Group1] = [ ISO_Level5_Shift ],
+ actions[Group1] = [ SetMods(modifiers=LevelFive) ]
+ };
+ modifier_map Mod3 { <MDSW> };
+
+ replace key <HYPR> {
+ vmods = NumLock,
+ symbols[Group1] = [ NoSymbol ],
+ actions[Group1] = [ SetMods(modifiers=NumLock) ]
+ };
+ modifier_map Mod2 { <HYPR> };
+};
+
+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 "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 ]
+ };
+};