From 34fa2ef28abd785655e75a8ea7ac7bc1662e3f6f Mon Sep 17 00:00:00 2001 From: Erich Blume <725328+eblume@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:16:02 -0700 Subject: [PATCH] =?UTF-8?q?C0:=20ringtail=20=E2=80=94=20restore=20sway=20d?= =?UTF-8?q?efault=20keybindings,=20fix=20fuzzel=20border=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extend (not replace) home-manager's default sway keybindings via lib.mkOptionDefault, with lib.mkForce on the custom overrides that conflict with defaults. Add Mod+F1 cheatsheet binding (fuzzel-filterable). Move fuzzel's border-radius/border-width out of [main] into a proper [border] section with the expected short names. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../+ringtail-sway-fuzzel.bugfix.md | 3 +++ nixos/ringtail/configuration.nix | 23 +++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 docs/changelog.d/+ringtail-sway-fuzzel.bugfix.md diff --git a/docs/changelog.d/+ringtail-sway-fuzzel.bugfix.md b/docs/changelog.d/+ringtail-sway-fuzzel.bugfix.md new file mode 100644 index 0000000..6801040 --- /dev/null +++ b/docs/changelog.d/+ringtail-sway-fuzzel.bugfix.md @@ -0,0 +1,3 @@ +Fixed sway keybindings on ringtail — the home-manager `keybindings` block was replacing the module's defaults entirely, leaving only explicit overrides (no workspace switching, focus, move, splits, resize mode, etc). Switched to `lib.mkOptionDefault` with `lib.mkForce` on the conflicting custom binds (`Mod+Return`, `Mod+d`, `Mod+space`, `Mod+l`) so defaults merge back in. Also added `Mod+F1` to show a filterable fuzzel list of current keybindings. + +Fixed fuzzel config errors on launch — `border-radius` and `border-width` were under `[main]`, but fuzzel expects them as `radius`/`width` under a `[border]` section. diff --git a/nixos/ringtail/configuration.nix b/nixos/ringtail/configuration.nix index 052f38d..2cc5280 100644 --- a/nixos/ringtail/configuration.nix +++ b/nixos/ringtail/configuration.nix @@ -323,13 +323,16 @@ in bg = "~/.config/sway/wallpaper.jpg fill"; }; }; - keybindings = let mod = "Mod4"; in { - "${mod}+Return" = "exec wezterm"; - "${mod}+Shift+q" = "kill"; - "${mod}+d" = "exec wmenu-run"; - "${mod}+space" = "exec fuzzel"; - "${mod}+Shift+c" = "reload"; - "${mod}+l" = "exec swaylock -f"; + # Extend (not replace) the home-manager default sway keybindings. + # lib.mkForce is needed on keys whose defaults we want to override + # (same priority otherwise conflicts). Audio keys and Mod+d (wmenu-run + # vs the default menu binding) don't collide with defaults. + keybindings = let mod = "Mod4"; in lib.mkOptionDefault { + "${mod}+Return" = lib.mkForce "exec wezterm"; + "${mod}+d" = lib.mkForce "exec wmenu-run"; + "${mod}+space" = lib.mkForce "exec fuzzel"; + "${mod}+l" = lib.mkForce "exec swaylock -f"; + "${mod}+F1" = "exec grep '^bindsym' ~/.config/sway/config | fuzzel --dmenu"; "--locked XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle"; "--locked XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -5%"; "--locked XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +5%"; @@ -401,8 +404,10 @@ in width = 40; horizontal-pad = 16; vertical-pad = 8; - border-radius = 8; - border-width = 2; + }; + border = { + radius = 8; + width = 2; }; colors = { background = "24273add";