Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

Commit

Permalink
feat: Fix caps-lock input delay (ublue-os#757)
Browse files Browse the repository at this point in the history
  • Loading branch information
fiftydinar authored Dec 25, 2023
1 parent b0703f9 commit dda52b0
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 0 deletions.
3 changes: 3 additions & 0 deletions usr/etc/dconf/db/local.d/01-ublue
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ picture-options='zoom'
primary-color='000000'
secondary-color='FFFFFF'

[org/gnome/desktop/input-sources]
xkb-options=['caps:ctrl_modifier']

[org/gnome/desktop/interface]
enable-hot-corners=false
clock-show-weekday=true
Expand Down
85 changes: 85 additions & 0 deletions usr/share/X11/xkb/symbols/capslock
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
default hidden partial modifier_keys
xkb_symbols "capslock" {
replace key <CAPS> { [ Caps_Lock ], type[group1] = "ONE_LEVEL" };
modifier_map Lock { Caps_Lock };
};

hidden partial modifier_keys
xkb_symbols "shiftlock" {
replace key <CAPS> { [ Shift_Lock ], type[group1] = "ONE_LEVEL" };
modifier_map Shift { Shift_Lock };
};

hidden partial modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape ], type[group1] = "ONE_LEVEL" };
key <ESC> { [ Caps_Lock ] };
};

hidden partial modifier_keys
xkb_symbols "escape" {
key <CAPS> { [ Escape ], type[group1] = "ONE_LEVEL" };
};

hidden partial modifier_keys
xkb_symbols "escape_shifted_capslock" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Escape, Caps_Lock ],
actions[Group1] = [ NoAction(), LockMods(modifiers = Lock) ]
};
};

hidden partial modifier_keys
xkb_symbols "escape_shifted_compose" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Escape, Multi_key ],
actions[Group1] = [ NoAction(), NoAction() ]
};
};

hidden partial modifier_keys
xkb_symbols "backspace" {
key <CAPS> { [ BackSpace ], type[group1] = "ONE_LEVEL" };
};

hidden partial modifier_keys
xkb_symbols "super" {
key <CAPS> { [ Super_L ], type[group1] = "ONE_LEVEL" };
modifier_map Mod4 { <CAPS> };
};

hidden partial modifier_keys
xkb_symbols "hyper" {
key <CAPS> { [ Hyper_L ], type[group1] = "ONE_LEVEL" };
modifier_map Mod4 { <CAPS> };
};

hidden partial modifier_keys
xkb_symbols "menu" {
key <CAPS> { [ Menu ], type[group1] = "ONE_LEVEL" };
};

hidden partial modifier_keys
xkb_symbols "numlock" {
key <CAPS> { [ Num_Lock ], type[group1] = "ONE_LEVEL" };
};

// This changes the <CAPS> key to become a Control modifier,
// but it will still produce the Caps_Lock keysym.
hidden partial modifier_keys
xkb_symbols "ctrl_modifier" {
key <CAPS> {
type="ALPHABETIC",
repeat=No,
symbols[Group1]= [ Caps_Lock, Caps_Lock ],
actions[Group1]= [ LockMods(modifiers=Lock),
LockMods(modifiers=Shift+Lock,affect=unlock) ]
};
};

hidden partial modifier_keys
xkb_symbols "none" {
key <CAPS> { [ VoidSymbol ], type[group1] = "ONE_LEVEL" };
};

0 comments on commit dda52b0

Please sign in to comment.