refactor(hyprland): replace kitty-herdr with tern and adjust keybindings

- Replaced `kitty-herdr` with `tern` as the default scratchpad terminal
  across configs, scripts, and docs.
- Remapped window resize controls to `SUPER + CTRL + HJKL` and monitor
  navigation to `ALT` modifiers.
- Removed the `scrolloverview` plugin configuration and cleaned up
  obsolete menu bindings.
This commit is contained in:
Prad Nukala committed 2026-10-06 11:38:28 -04:00
1 parent 272a442613
commit 85d77ef90d
5 files changed
+35 -57

No files matched your search

+21 -46
View File
@@ -123,7 +123,7 @@ o.bind("SUPER + CTRL + J", "Next workspace", hl.dsp.focus({ workspace = "e+1" })
o.bind("SUPER + CTRL + K", "Previous workspace", hl.dsp.focus({ workspace = "e-1" }))
-- Scratch workspaces. Omarchy's SUPER + S is taken by the region screenshot
-- below, so the main toggle (kitty/herdr) lands on SUPER + CTRL + S, with
-- below, so the main toggle (Tern) lands on SUPER + CTRL + S, with
-- SUPER + A (free in Omarchy) as the home-row alias. Claude Desktop has its
-- own scratch workspace on SUPER + SHIFT + A and SUPER + C (the latter
-- replaces Omarchy's universal copy). SUPER + ALT + S (send window to the
@@ -138,7 +138,7 @@ o.bind("SUPER + CTRL + K", "Previous workspace", hl.dsp.focus({ workspace = "e-1
-- under SUPER + CTRL + ALT + E / M in the Applications block below.
hl.unbind("SUPER + CTRL + S") -- was: share menu
o.bind("SUPER + CTRL + S", "Toggle scratch workspace", "omarchy-toggle-scratch scratchpad")
o.bind("SUPER + A", "Toggle Herdr scratch workspace", "omarchy-toggle-scratch scratchpad")
o.bind("SUPER + A", "Toggle Tern scratch workspace", "omarchy-toggle-scratch scratchpad")
hl.unbind("SUPER + SHIFT + A") -- was: ChatGPT web app
o.bind("SUPER + SHIFT + A", "Toggle Claude scratch workspace", "omarchy-toggle-scratch claude")
hl.unbind("SUPER + C") -- was: universal copy
@@ -156,11 +156,12 @@ end
hl.unbind("SUPER + O") -- was: pop window out
hl.unbind("SUPER + SHIFT + O") -- was: Obsidian (moved to SUPER + CTRL + ALT + O)
o.bind("SUPER + O", "Focus next monitor", hl.dsp.focus({ monitor = "+1" }))
o.bind("SUPER + SHIFT + O", "Move window to next monitor", hl.dsp.window.move({ monitor = "+1" }))
o.bind("SUPER + CTRL + SHIFT + J", "Move window to next monitor", hl.dsp.window.move({ monitor = "+1" }))
o.bind("SUPER + CTRL + SHIFT + K", "Move window to previous monitor", hl.dsp.window.move({ monitor = "-1" }))
o.bind("ALT + O", "Focus next monitor", hl.dsp.focus({ monitor = "+1" }))
o.bind("ALT + SHIFT + O", "Move window to next monitor", hl.dsp.window.move({ monitor = "+1" }))
o.bind("ALT + SHIFT + J", "Move window to next monitor", hl.dsp.window.move({ monitor = "+1" }))
o.bind("ALT + SHIFT + K", "Move window to previous monitor", hl.dsp.window.move({ monitor = "-1" }))
-- Named workspaces, in place of niri-dynamic-workspaces.
o.bind("SUPER + SHIFT + CTRL + ALT + W", "Workspace w", hl.dsp.focus({ workspace = "name:w" }))
@@ -175,10 +176,15 @@ o.bind("SUPER + SHIFT + R", "Cycle window size back", "omarchy-cycle-window-size
-- Alt+Shift+hjkl. Hyprland resizes by pixels, not by percent, so 100 px
-- replaces the niri 10%.
o.bind("ALT + H", "Shrink window width", hl.dsp.window.resize({ x = -100, y = 0, relative = true }))
o.bind("ALT + L", "Grow window width", hl.dsp.window.resize({ x = 100, y = 0, relative = true }))
o.bind("ALT + K", "Shrink window height", hl.dsp.window.resize({ x = 0, y = -100, relative = true }))
o.bind("ALT + J", "Grow window height", hl.dsp.window.resize({ x = 0, y = 100, relative = true }))
hl.unbind("SUPER + CTRL + H") -- was: toggle window gaps
hl.unbind("SUPER + CTRL + L") -- was: toggle window gaps
hl.unbind("SUPER + CTRL + K") -- was: toggle window gaps
hl.unbind("SUPER + CTRL + J") -- was: toggle window gaps
o.bind("SUPER + CTRL + H", "Shrink window width", hl.dsp.window.resize({ x = -100, y = 0, relative = true }))
o.bind("SUPER + CTRL + L", "Grow window width", hl.dsp.window.resize({ x = 100, y = 0, relative = true }))
o.bind("SUPER + CTRL + K", "Shrink window height", hl.dsp.window.resize({ x = 0, y = -100, relative = true }))
o.bind("SUPER + CTRL + J", "Grow window height", hl.dsp.window.resize({ x = 0, y = 100, relative = true }))
-- Same width steps on SUPER + , / SUPER + . (the < and > keys). Key names are
-- the lower-case xkb keysyms; "COMMA"/"PERIOD" would not match.
@@ -233,9 +239,6 @@ o.bind("SUPER + CTRL + ALT + T", "tldraw offline", "omarchy-launch-or-focus tldr
hl.unbind("SUPER + CTRL + ALT + W") -- was: toggle weather
-- gtk-launch takes the desktop-entry id: TLDraw.desktop, not tldraw_offline,
-- which does not exist (the old command could only focus, never launch).
o.bind("SUPER + CTRL + ALT + W", "tldraw", "omarchy-launch-or-focus tldraw \"gtk-launch TLDraw\"")
o.bind("SUPER + CTRL + ALT + SPACE", "Sticky notes", "omarchy-launch-or-focus sticky \"gtk-launch io.github.faridjaff.StickyNotesCanvas\"")
hl.unbind("SUPER + SHIFT + G") -- was: Signal
-- The ssh/mosh command and tmux keymaps live in ~/.config/kitty/goliath.conf
@@ -270,44 +273,16 @@ o.bind("SUPER + F24", "Dictate to Hermes", "voxtype record toggle --profile herm
-- Omarchy menu. SUPER + ALT + SPACE is the apps menu.
hl.unbind("SUPER + SHIFT + SPACE") -- was: toggle top bar
o.bind("SUPER + SHIFT + SPACE", "Emojis", "omarchy-shell shell toggle omarchy.emojis")
hl.unbind("SUPER + P") -- was: pseudo window
o.bind("SUPER + P", "Clipboard manager", "omarchy-shell shell toggle omarchy.clipboard")
hl.unbind("SUPER + SPACE") -- was: pseudo window
-- Omarchy's SUPER + SPACE is ALT + SPACE, so the key is free in Omarchy.
o.bind("ALT + SPACE", "Toggle Launcher", "omarchy-menu toggle launcher")
-- Mod+Shift+Return was the vicinae window switcher. ScrollOverview on
-- ALT + TAB below takes that job, so SUPER + SHIFT + RETURN keeps its default
-- job of opening the browser.
-- ─── ScrollOverview plugin ──────────────────────────────────────────────────
if hl.plugin.scrolloverview then
hl.config({
plugin = {
scrolloverview = {
gesture_distance = 300, -- how far is the "max" for the gesture
scale = 0.5, -- preferred overview scale
workspace_gap = 100,
layout = "vertical", -- vertical or horizontal
wallpaper = 2, -- 0: global only, 1: per-workspace only, 2: both
blur = true, -- blur only the main overview wallpaper
shadow = {
enabled = true,
range = 50,
},
},
},
})
-- Omarchy puts two binds on ALT + TAB: focus next window, and reveal the
-- active window on top. Both go, and the overview takes the key. Written with
-- o.bind and a description, so it shows up in the keybindings menu.
hl.unbind("ALT + TAB")
o.bind("ALT + TAB", "Toggle overview", function()
hl.plugin.scrolloverview.overview("toggle all")
end)
end
--
-- flea --default: begin. Written by `flea --default`; `flea --default off` removes the block whole.
hl.unbind("SUPER + SHIFT + F")
o.bind("SUPER + SHIFT + F", "File manager", { launch = 'flea --gui' })
+4 -3
View File
@@ -50,9 +50,10 @@ o.window([[^tldraw-offline$]], { workspace = "5", fullscreen = true })
-- them; "silent" leaves the reveal to the script. Under the master layout the
-- first window to appear takes the master slot; the rest stack beside it.
--
-- SUPER + A / SUPER + CTRL + S: kitty/herdr; SUPER + SHIFT + A: Claude
-- Desktop. Each alone on its own workspace, Studio Display.
o.window([[^kitty-herdr$]], { workspace = "special:scratchpad silent" })
-- SUPER + A / SUPER + CTRL + S: Tern; SUPER + SHIFT + A: Claude Desktop.
-- Each alone on its own workspace, Studio Display. Tern has no per-window
-- class flag, so every Tern window lands on the scratchpad.
o.window([[^so\.stencil\.tern$]], { workspace = "special:scratchpad silent" })
o.window([[^com\.anthropic\.Claude$]], { workspace = "special:claude silent" })
-- SUPER + CTRL + ALT + E / M: Fastmail and Beeper, each alone on the
-- focused monitor.