Skip to content

Commit 2582e2e

Browse files
committed
Update capslock
1 parent 80f1253 commit 2582e2e

File tree

1 file changed

+67
-1
lines changed
  • files/0-system/usr/share/xkeyboard-config-2/symbols

1 file changed

+67
-1
lines changed

files/0-system/usr/share/xkeyboard-config-2/symbols/capslock

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ xkb_symbols "backspace" {
4444
key <CAPS> { [ BackSpace ], type[group1] = "ONE_LEVEL" };
4545
};
4646

47+
hidden partial modifier_keys
48+
xkb_symbols "return" {
49+
key <CAPS> { [ Return ], type[group1] = "ONE_LEVEL" };
50+
};
51+
4752
hidden partial modifier_keys
4853
xkb_symbols "super" {
4954
key <CAPS> { [ Super_L ], type[group1] = "ONE_LEVEL" };
@@ -53,7 +58,8 @@ xkb_symbols "super" {
5358
hidden partial modifier_keys
5459
xkb_symbols "hyper" {
5560
key <CAPS> { [ Hyper_L ], type[group1] = "ONE_LEVEL" };
56-
modifier_map Mod4 { <CAPS> };
61+
modifier_map None { <CAPS> };
62+
include "hyper(mod3)"
5763
};
5864

5965
hidden partial modifier_keys
@@ -66,6 +72,17 @@ xkb_symbols "numlock" {
6672
key <CAPS> { [ Num_Lock ], type[group1] = "ONE_LEVEL" };
6773
};
6874

75+
hidden partial modifier_keys
76+
xkb_symbols "ctrl_shifted_capslock" {
77+
key <CAPS> {
78+
type[Group1] = "TWO_LEVEL",
79+
symbols[Group1] = [ Control_L, Caps_Lock ],
80+
// Explicit actions are preferred over modMap None/Control { Caps_Lock }
81+
// because they have no side effect
82+
actions[Group1] = [ SetMods(modifiers=Control), LockMods(modifiers=Lock) ]
83+
};
84+
};
85+
6986
// This changes the <CAPS> key to become a Control modifier,
7087
// but it will still produce the Caps_Lock keysym.
7188
hidden partial modifier_keys
@@ -83,3 +100,52 @@ hidden partial modifier_keys
83100
xkb_symbols "none" {
84101
key <CAPS> { [ VoidSymbol ], type[group1] = "ONE_LEVEL" };
85102
};
103+
104+
// For layouts having digits on the 2nd level on the digits row and key type
105+
// FOUR_LEVEL (e.g. fr(basic) and be(basic)), this makes CapsLock give the digits
106+
// by changing their key type to FOUR_LEVEL_SEMIALPHABETIC. Note that this has the
107+
// drawback that the uppercases À, È, É and Ç are no longer available, as those
108+
// layouts rely on internal capitalization rules for those letters.
109+
hidden partial alphanumeric_keys
110+
xkb_symbols "digits_row" {
111+
key.type[group1] = "FOUR_LEVEL_SEMIALPHABETIC";
112+
113+
// No symbol defined: we just want to change the key type
114+
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
115+
key <AE02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
116+
key <AE03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
117+
key <AE04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
118+
key <AE05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
119+
key <AE06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
120+
key <AE07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
121+
key <AE08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
122+
key <AE09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
123+
key <AE10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
124+
};
125+
126+
// The Shift + Caps Lock combination inverts the first two levels only.
127+
// Originally designed for layouts with digits on the second level of the
128+
// digits row (e.g. Azerty layouts).
129+
// This allows users to have direct access to digits while keeping
130+
// usual capitalization via Caps Lock.
131+
hidden partial alphanumeric_keys
132+
xkb_symbols "digits_row_independent_lock" {
133+
key <CAPS> {
134+
type[Group1] = "TWO_LEVEL",
135+
symbols[Group1] = [ NoSymbol, ISO_Level5_Lock ]
136+
};
137+
138+
key.type[group1] = "FOUR_LEVEL_LOCKABLE_LEVEL2";
139+
140+
// No symbol defined: we just want to change the key type
141+
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
142+
key <AE02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
143+
key <AE03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
144+
key <AE04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
145+
key <AE05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
146+
key <AE06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
147+
key <AE07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
148+
key <AE08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
149+
key <AE09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
150+
key <AE10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };
151+
};

0 commit comments

Comments
 (0)