Return Caps Lock to normal and make Shift + Caps Lock the compose key (#14939)
* Return Caps Lock to normal and make Shift + Caps Lock the compose key Caps Lock as compose, with both Shifts as Caps Lock, confused too many people. Stock XKB has no option for compose on the shifted Caps key, so Omarchy defines one in /etc/xkb, which libxkbcommon reads before the system rules. The explicit actions keep the Shift level from toggling Caps Lock. Lone Shift is no longer part of Caps Lock, which leaves it free for input methods. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Require xkbcli so the keymap check cannot silently skip Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0b9dace018
commit
1b5222be74
12 files changed
+64
-53
No files matched your search
@@ -3,6 +3,7 @@
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/base-test.sh"
|
||||
|
||||
require_command lua
|
||||
require_command xkbcli
|
||||
|
||||
resolved_input_for() {
|
||||
local module="$1"
|
||||
@@ -94,7 +95,7 @@ assert_greeter_input() {
|
||||
assert_resolved_input resolved_greeter_input "$@"
|
||||
}
|
||||
|
||||
base_options="compose:caps,shift:both_capslock_cancel"
|
||||
base_options="omarchy:shift_caps_compose"
|
||||
toggle_options="$base_options,grp:alts_toggle"
|
||||
|
||||
assert_input "missing vconsole.conf falls back to us" "[us] [] [$base_options]"
|
||||
@@ -117,6 +118,11 @@ XKBVARIANT=phonetic
|
||||
assert_input "non-latin layout in front gains us even when us trails" "[us,il,us] [,] [$toggle_options]" 'XKBLAYOUT=il,us
|
||||
'
|
||||
|
||||
caps=$(xkbcli compile-keymap --include "$ROOT/etc/xkb" --include-defaults --layout us,ru --options omarchy:shift_caps_compose | grep -A5 'key <CAPS>')
|
||||
[[ $caps == *"Caps_Lock,"*"Multi_key ]"* && $caps == *"LockMods(modifiers=Lock),"*"NoAction() ]"* ]] ||
|
||||
fail "Shift + Caps Lock composes without toggling Caps Lock" "$caps"
|
||||
pass "Shift + Caps Lock composes without toggling Caps Lock"
|
||||
|
||||
# The greeter takes no compose or capslock options: they're session comfort
|
||||
# settings with nothing to do with typing a password.
|
||||
assert_greeter_input "greeter falls back to us without vconsole.conf" "[us] [] []"
|
||||
|
||||
Reference in new issue
Block a user