From d6d8aa00c8b7635fb5672f24924a52b886f0e897 Mon Sep 17 00:00:00 2001 From: aibrash Date: Fri, 30 Oct 2026 14:02:03 +0500 Subject: [PATCH] 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 --- hypr/cheatsheet.txt | 2 +- hypr/hyprland.lua | 35 +++++------------------------------ 2 files changed, 6 insertions(+), 31 deletions(-) diff --git a/hypr/cheatsheet.txt b/hypr/cheatsheet.txt index f183766..e7288a0 100644 --- a/hypr/cheatsheet.txt +++ b/hypr/cheatsheet.txt @@ -23,7 +23,7 @@ Mod+E Сменить направление разбиения Mod+P Pseudo-tiling Mod+W Собрать окна во вкладки (группа) Mod+[ / Mod+] Предыдущая / следующая вкладка группы -Mod+R Режим ресайза (H/J/K/L или стрелки, Enter/Esc выход) +Mod+Ctrl+H/J/K/L Изменить размер окна (также стрелки, можно удерживать) Mod+ЛКМ / ПКМ Перетащить / изменить размер окна мышью SSH-МЕНЮ (Mod+S) ● доступен ○ нет ◐ через jump diff --git a/hypr/hyprland.lua b/hypr/hyprland.lua index a6c305d..98064c1 100644 --- a/hypr/hyprland.lua +++ b/hypr/hyprland.lua @@ -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:273", hl.dsp.window.resize(), { mouse = true }) --- resize submap (mod+r, like sway's resize mode) -b(mod .. " + R", hl.dsp.submap("resize")) -hl.define_submap("resize", "reset", function() - b("h", hl.dsp.window.resize({ x = -40, y = 0, relative = true }), { repeating = true }) - b("l", hl.dsp.window.resize({ x = 40, y = 0, relative = true }), { repeating = true }) - 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" })) +-- resize the focused window without a mode: Mod+Ctrl + h/j/k/l or arrows (hold to repeat) +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} } +for key, d in pairs(rs) do + b(mod .. " + CTRL + " .. key, hl.dsp.window.resize({ x = d[1], y = d[2], relative = true }), { repeating = true }) +end -- screenshots (grim + slurp; saved to ~/Pictures/Screenshots and copied) local shot = "mkdir -p ~/Pictures/Screenshots; f=~/Pictures/Screenshots/$(date +%F_%H-%M-%S).png; "