Replace the resize submap with direct Mod+Ctrl+hjkl binds

Mod+R entered a mode where every other bind stopped working until Esc/Enter,
with no indicator. Resizing is now Mod+Ctrl+H/J/K/L (or arrows, repeating).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-30 14:02:03 +05:00
co-authored by Claude Sonnet 5.5
parent bbae1ab913
commit d6d8aa00c8
2 changed files with 6 additions and 31 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ Mod+E Сменить направление разбиения
Mod+P Pseudo-tiling Mod+P Pseudo-tiling
Mod+W Собрать окна во вкладки (группа) Mod+W Собрать окна во вкладки (группа)
Mod+[ / Mod+] Предыдущая / следующая вкладка группы Mod+[ / Mod+] Предыдущая / следующая вкладка группы
Mod+R Режим ресайза (H/J/K/L или стрелки, Enter/Esc выход) Mod+Ctrl+H/J/K/L Изменить размер окна (также стрелки, можно удерживать)
Mod+ЛКМ / ПКМ Перетащить / изменить размер окна мышью Mod+ЛКМ / ПКМ Перетащить / изменить размер окна мышью
SSH-МЕНЮ (Mod+S) ● доступен ○ нет ◐ через jump SSH-МЕНЮ (Mod+S) ● доступен ○ нет ◐ через jump
+5 -30
View File
@@ -199,36 +199,11 @@ b(mod .. " + minus", hl.dsp.workspace.toggle_special("scratch"))
b(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true }) b(mod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
b(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true }) b(mod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- resize submap (mod+r, like sway's resize mode) -- resize the focused window without a mode: Mod+Ctrl + h/j/k/l or arrows (hold to repeat)
b(mod .. " + R", hl.dsp.submap("resize")) local rs = { h = {-40, 0}, l = {40, 0}, k = {0, -40}, j = {0, 40}, left = {-40, 0}, right = {40, 0}, up = {0, -40}, down = {0, 40} }
hl.define_submap("resize", "reset", function() for key, d in pairs(rs) do
b("h", hl.dsp.window.resize({ x = -40, y = 0, relative = true }), { repeating = true }) b(mod .. " + CTRL + " .. key, hl.dsp.window.resize({ x = d[1], y = d[2], relative = true }), { repeating = true })
b("l", hl.dsp.window.resize({ x = 40, y = 0, relative = true }), { repeating = true }) end
b("k", hl.dsp.window.resize({ x = 0, y = -40, relative = true }), { repeating = true })
b("j", hl.dsp.window.resize({ x = 0, y = 40, relative = true }), { repeating = true })
b("left", hl.dsp.window.resize({ x = -40, y = 0, relative = true }), { repeating = true })
b("right", hl.dsp.window.resize({ x = 40, y = 0, relative = true }), { repeating = true })
b("up", hl.dsp.window.resize({ x = 0, y = -40, relative = true }), { repeating = true })
b("down", hl.dsp.window.resize({ x = 0, y = 40, relative = true }), { repeating = true })
b("Return", hl.dsp.submap("reset"))
b("Escape", hl.dsp.submap("reset"))
end)
-- sysadmin toolbox
b(mod .. " + S", hl.dsp.exec_cmd("kitty --class ssh-menu -o font_size=12 -o env=SSH_MENU=1 --title 'ssh menu' ~/.config/hypr/scripts/ssh-menu.sh")) -- SSH hub (fzf)
local raise = "~/.config/hypr/scripts/raise.sh "
b(mod .. " + T", hl.dsp.exec_cmd(raise .. "'^org.telegram.desktop$' flatpak run org.telegram.desktop")) -- focus if open, else launch
b(mod .. " + B", hl.dsp.exec_cmd(raise .. "'^google-chrome$' flatpak run com.google.Chrome")) -- again = next Chrome window
b(mod .. " + SHIFT + B", hl.dsp.exec_cmd("flatpak run com.google.Chrome --new-window")) -- always a new window
b(mod .. " + F1", hl.dsp.exec_cmd("~/.config/hypr/scripts/cheatsheet.sh")) -- hotkey reference
b(mod .. " + K", hl.dsp.exec_cmd(raise .. "'^org.keepassxc.KeePassXC$' keepassxc"))
b(mod .. " + SHIFT + T", hl.dsp.window.pin()) -- keep a floating window on top
b(mod .. " + bracketright", hl.dsp.group.next())
b(mod .. " + bracketleft", hl.dsp.group.prev())
-- two monitors: laptop <-> external (focus only)
b(mod .. " + comma", hl.dsp.focus({ monitor = "-1" }))
b(mod .. " + period", hl.dsp.focus({ monitor = "+1" }))
-- screenshots (grim + slurp; saved to ~/Pictures/Screenshots and copied) -- screenshots (grim + slurp; saved to ~/Pictures/Screenshots and copied)
local shot = "mkdir -p ~/Pictures/Screenshots; f=~/Pictures/Screenshots/$(date +%F_%H-%M-%S).png; " local shot = "mkdir -p ~/Pictures/Screenshots; f=~/Pictures/Screenshots/$(date +%F_%H-%M-%S).png; "