aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/xkbdata.src/symbols/shift
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/xkbdata.src/symbols/shift')
-rw-r--r--xorg-server/xkbdata.src/symbols/shift45
1 files changed, 45 insertions, 0 deletions
diff --git a/xorg-server/xkbdata.src/symbols/shift b/xorg-server/xkbdata.src/symbols/shift
index 4bd1cd627..78951c1ec 100644
--- a/xorg-server/xkbdata.src/symbols/shift
+++ b/xorg-server/xkbdata.src/symbols/shift
@@ -39,3 +39,48 @@ xkb_symbols "both_capslock" {
include "shift(lshift_both_capslock)"
include "shift(rshift_both_capslock)"
};
+
+// Release Lock when pressed alone and set Lock when pressed with another Shift key.
+partial modifier_keys
+xkb_symbols "lshift_both_capslock_cancel" {
+ key <LFSH> {
+ type[Group1]="ALPHABETIC",
+ symbols[Group1] = [ Shift_L, Caps_Lock ]
+ };
+};
+// Release Lock when pressed alone and set Lock when pressed with another Shift key.
+partial modifier_keys
+xkb_symbols "rshift_both_capslock_cancel" {
+ key <RTSH> {
+ type[Group1]="ALPHABETIC",
+ symbols[Group1] = [ Shift_R, Caps_Lock ]
+ };
+};
+partial modifier_keys
+xkb_symbols "both_capslock_cancel" {
+ include "shift(lshift_both_capslock_cancel)"
+ include "shift(rshift_both_capslock_cancel)"
+};
+
+
+// When pressed together with another Shift key, lock/unlock Shift.
+partial modifier_keys
+xkb_symbols "lshift_both_shiftlock" {
+ key <LFSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_L, Shift_Lock ]
+ };
+};
+// When pressed together with another Shift key, lock/unlock Shift.
+partial modifier_keys
+xkb_symbols "rshift_both_shiftlock" {
+ key <RTSH> {
+ type[Group1]="TWO_LEVEL",
+ symbols[Group1] = [ Shift_R, Shift_Lock ]
+ };
+};
+partial modifier_keys
+xkb_symbols "both_shiftlock" {
+ include "shift(lshift_both_shiftlock)"
+ include "shift(rshift_both_shiftlock)"
+};