diff options
Diffstat (limited to 'xorg-server/xkbdata.src/symbols/shift')
-rw-r--r-- | xorg-server/xkbdata.src/symbols/shift | 45 |
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)" +}; |