Preserve the GNOME Caps Lock behavior
This commit is contained in:
@@ -12,7 +12,7 @@ hl.config({
|
|||||||
kb_layout = prefs.get("keyboardLayout", "us"),
|
kb_layout = prefs.get("keyboardLayout", "us"),
|
||||||
kb_variant = prefs.get("keyboardVariant", ""),
|
kb_variant = prefs.get("keyboardVariant", ""),
|
||||||
kb_model = "",
|
kb_model = "",
|
||||||
kb_options = prefs.get("keyboardOptions", ""),
|
kb_options = prefs.get("keyboardOptions", "caps:escape_shifted_capslock"),
|
||||||
kb_rules = "",
|
kb_rules = "",
|
||||||
|
|
||||||
numlock_by_default = prefs.get("numlockByDefault", true),
|
numlock_by_default = prefs.get("numlockByDefault", true),
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ Singleton {
|
|||||||
hypr: { path: ["input", "kb_variant"], option: "input:kb_variant", readAs: "str" }
|
hypr: { path: ["input", "kb_variant"], option: "input:kb_variant", readAs: "str" }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "keyboardOptions", type: "string", def: "", group: "input",
|
key: "keyboardOptions", type: "string", def: "caps:escape_shifted_capslock", group: "input",
|
||||||
// XKB option names are colon-separated pairs in a comma-separated
|
// XKB option names are colon-separated pairs in a comma-separated
|
||||||
// list, e.g. "compose:ralt,caps:escape".
|
// list, e.g. "compose:ralt,caps:escape".
|
||||||
pattern: "^$|^[a-z0-9_]+:[a-z0-9_]+(,[a-z0-9_]+:[a-z0-9_]+)*$",
|
pattern: "^$|^[a-z0-9_]+:[a-z0-9_]+(,[a-z0-9_]+:[a-z0-9_]+)*$",
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ set -euo pipefail
|
|||||||
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
page="$repo_dir/config/dot/quickshell/modules/settings/ShortcutsPage.qml"
|
page="$repo_dir/config/dot/quickshell/modules/settings/ShortcutsPage.qml"
|
||||||
input="$repo_dir/config/dot/hypr/input.lua"
|
input="$repo_dir/config/dot/hypr/input.lua"
|
||||||
|
schema="$repo_dir/config/dot/quickshell/config/PreferenceSchema.qml"
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
printf 'xkb presets contract: %s\n' "$1" >&2
|
printf 'xkb presets contract: %s\n' "$1" >&2
|
||||||
@@ -37,7 +38,9 @@ rg -Fq 'option.indexOf(prefix) !== 0' "$page" \
|
|||||||
|
|
||||||
rg -Fq 'kb_variant = prefs.get("keyboardVariant", "")' "$input" \
|
rg -Fq 'kb_variant = prefs.get("keyboardVariant", "")' "$input" \
|
||||||
|| fail 'Hyprland does not replay the stored keyboard variant'
|
|| fail 'Hyprland does not replay the stored keyboard variant'
|
||||||
rg -Fq 'kb_options = prefs.get("keyboardOptions", "")' "$input" \
|
rg -Fq 'key: "keyboardOptions", type: "string", def: "caps:escape_shifted_capslock"' "$schema" \
|
||||||
|
|| fail 'the shipped XKB default no longer matches the migrated GNOME behavior'
|
||||||
|
rg -Fq 'kb_options = prefs.get("keyboardOptions", "caps:escape_shifted_capslock")' "$input" \
|
||||||
|| fail 'Hyprland does not replay the stored keyboard options'
|
|| fail 'Hyprland does not replay the stored keyboard options'
|
||||||
|
|
||||||
printf 'xkb presets contract: PASS\n'
|
printf 'xkb presets contract: PASS\n'
|
||||||
|
|||||||
Reference in New Issue
Block a user