Reliable letter-based default keybinds + kitty keyboard protocol

alt+tab is grabbed by desktop WMs and alt+arrows are re-encoded or
swallowed by several terminals, leaking plain arrow keys into the
focused window. Primary defaults are now letter chords which every
terminal delivers via ESC-prefix: alt+w (switcher), alt+h/alt+l
(snap), alt+m (maximize). The alt+tab/arrow variants stay as extra
bindings, and standalone/client now enable the kitty keyboard
protocol (DISAMBIGUATE_ESCAPE_CODES) when the terminal supports it
so even those are delivered unambiguously (Konsole 23.08+, kitty,
foot, wezterm, ghostty). 34/34 integration checks.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 20:15:17 +02:00
parent 8296081557
commit ca13abc9b7
9 changed files with 152 additions and 32 deletions

View File

@@ -45,34 +45,49 @@ label = "Ny terminal"
action = { type = "spawn_terminal" }
[[keybind]]
key = "alt+tab"
key = "alt+w"
scope = "global"
label = "Fönsterväxlare"
action = { type = "window_switcher" }
[[keybind]]
key = "alt+w"
key = "alt+tab"
scope = "global"
action = { type = "window_switcher" }
[[keybind]]
key = "alt+left"
key = "alt+h"
scope = "global"
label = "Fäst vänster"
action = { type = "snap_left" }
[[keybind]]
key = "alt+right"
key = "alt+left"
scope = "global"
action = { type = "snap_left" }
[[keybind]]
key = "alt+l"
scope = "global"
label = "Fäst höger"
action = { type = "snap_right" }
[[keybind]]
key = "alt+up"
key = "alt+right"
scope = "global"
action = { type = "snap_right" }
[[keybind]]
key = "alt+m"
scope = "global"
label = "Maximera/återställ"
action = { type = "maximize" }
[[keybind]]
key = "alt+up"
scope = "global"
action = { type = "maximize" }
[[keybind]]
key = "alt+c"
scope = "global"

25
dist/win/config.toml vendored
View File

@@ -45,34 +45,49 @@ label = "Ny PowerShell-terminal"
action = { type = "spawn_terminal", shell = "powershell.exe" }
[[keybind]]
key = "alt+tab"
key = "alt+w"
scope = "global"
label = "Fönsterväxlare"
action = { type = "window_switcher" }
[[keybind]]
key = "alt+w"
key = "alt+tab"
scope = "global"
action = { type = "window_switcher" }
[[keybind]]
key = "alt+left"
key = "alt+h"
scope = "global"
label = "Fäst vänster"
action = { type = "snap_left" }
[[keybind]]
key = "alt+right"
key = "alt+left"
scope = "global"
action = { type = "snap_left" }
[[keybind]]
key = "alt+l"
scope = "global"
label = "Fäst höger"
action = { type = "snap_right" }
[[keybind]]
key = "alt+up"
key = "alt+right"
scope = "global"
action = { type = "snap_right" }
[[keybind]]
key = "alt+m"
scope = "global"
label = "Maximera/återställ"
action = { type = "maximize" }
[[keybind]]
key = "alt+up"
scope = "global"
action = { type = "maximize" }
[[keybind]]
key = "alt+c"
scope = "global"