From 719ef2f38e4e730fab870390edb9539ee1093740 Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Tue, 18 Aug 2026 21:23:19 -0400 Subject: [PATCH] Fix a keybind collision and wire two orphaned prefs SUPER+SHIFT+P was bound to both the colour picker and a window-resize action; moved the resize bind to SUPER+SHIFT+Comma, next to its existing N alias, and updated the README's keymap table to match. workspaceBackAndForth and allowWorkspaceCycles were declared in the preference schema but read nowhere, so they had no effect regardless of what a user set them to; wired both into keybinds.lua's workspace config, which is where they actually apply. Claude-Session: https://claude.ai/code/session_01E6TJUAh41HaP25MVHWkhRZ --- config/dot/hypr/README.md | 2 +- config/dot/hypr/keybinds.lua | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/config/dot/hypr/README.md b/config/dot/hypr/README.md index b147c90..7c810f9 100644 --- a/config/dot/hypr/README.md +++ b/config/dot/hypr/README.md @@ -247,7 +247,7 @@ The mental model is unchanged from Forge: | `SUPER + SHIFT + H/J/K/L` | Move window | | `SUPER + CTRL + H/J/K/L` | Swap window | | `SUPER + SHIFT + Y/O` · `B/M` | Wider · narrower | -| `SUPER + SHIFT + I/U` · `P/N` | Taller · shorter | +| `SUPER + SHIFT + I/U` · `,/N` | Taller · shorter | | `SUPER + [` / `]` / `=` | Shrink / expand / reset split | | `SUPER + Q` | Close | | `SUPER + U` | Fullscreen | diff --git a/config/dot/hypr/keybinds.lua b/config/dot/hypr/keybinds.lua index 610cbb2..a27a3f1 100644 --- a/config/dot/hypr/keybinds.lua +++ b/config/dot/hypr/keybinds.lua @@ -192,7 +192,10 @@ bind(mod .. " + SHIFT + B", hl.dsp.window.resize({ x = -step, y = 0, relative = bind(mod .. " + SHIFT + M", hl.dsp.window.resize({ x = -step, y = 0, relative = true }), { repeating = true, description = "Narrower" }) bind(mod .. " + SHIFT + I", hl.dsp.window.resize({ x = 0, y = step, relative = true }), { repeating = true, description = "Taller" }) bind(mod .. " + SHIFT + U", hl.dsp.window.resize({ x = 0, y = step, relative = true }), { repeating = true, description = "Taller" }) -bind(mod .. " + SHIFT + P", hl.dsp.window.resize({ x = 0, y = -step, relative = true }), { repeating = true, description = "Shorter" }) +-- SUPER+SHIFT+P was double-bound with the colour picker above; moved to +-- Comma, which continues the bottom-row cluster (B/M/N) this axis already +-- uses rather than landing on an arbitrary free key. +bind(mod .. " + SHIFT + Comma", hl.dsp.window.resize({ x = 0, y = -step, relative = true }), { repeating = true, description = "Shorter" }) bind(mod .. " + SHIFT + N", hl.dsp.window.resize({ x = 0, y = -step, relative = true }), { repeating = true, description = "Shorter" }) -- Window cycling (GNOME: cycle-windows on SUPER+Tab), now with an overlay @@ -223,6 +226,17 @@ bind(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true, description -- Plain relative selectors ("+1" / "-1") reproduce GNOME's dynamic workspaces: -- moving right past the last workspace creates a new one, and moving left from -- the first clamps instead of wrapping. + +-- Behaviour for the relative/cyclic binds below. These are Hyprland's own +-- `binds:` options -- not part of general/dwindle -- and have no other home +-- in the config, so they are read here rather than in looks.lua. +hl.config({ + binds = { + workspace_back_and_forth = prefs.get("workspaceBackAndForth", false), + allow_workspace_cycles = prefs.get("allowWorkspaceCycles", false), + }, +}) + bind("ALT + H", hl.dsp.focus({ workspace = "-1" }), { description = "Workspace left" }) bind("ALT + L", hl.dsp.focus({ workspace = "+1" }), { description = "Workspace right" }) bind("ALT + SHIFT + H", hl.dsp.window.move({ workspace = "-1" }), { description = "Move window to workspace left" })