mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 11:32:42 +00:00
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:
1 parent
272a442613
commit
85d77ef90d
5 files changed
+35
-57
No files matched your search
@@ -59,7 +59,8 @@ Omarchy's default bindings stay enabled. `omarchy_default_bindings` and `omarchy
|
||||
| --- | --- |
|
||||
| `^brave-www\.tldraw\.com__-Default$` | Workspace 3 |
|
||||
| `^tldraw-offline$` | Workspace 5, fullscreen |
|
||||
| `^com\.anthropic\.Claude$`, `^kitty-herdr$` | `special:scratchpad silent` |
|
||||
| `^so\.stencil\.tern$` | `special:scratchpad silent` |
|
||||
| `^com\.anthropic\.Claude$` | `special:claude silent` |
|
||||
| `^com\.fastmail\.Fastmail$` | `special:fastmail silent` |
|
||||
| `^Beeper$` | `special:beeper silent` |
|
||||
| `brave-(www\.)?youtube\.com__.*`, title not matching `.*Picture.?in.?[Pp]icture.*` | Float, pin, size 30% × 30% of the monitor, move to `10, monitor_h*0.7-10` (bottom-left corner) |
|
||||
@@ -176,7 +177,7 @@ Every binding defined in `bindings.lua`. Bindings not listed here are Omarchy de
|
||||
| `ALT + Q` / `W` / `E` / `R` / `T` | Switch to workspace 1 / 2 / 3 / 4 / 5 | — |
|
||||
| `ALT + SHIFT + Q` / `W` / `E` / `R` / `T` | Move window to workspace 1 / 2 / 3 / 4 / 5 | — |
|
||||
| `SUPER + CTRL + S` | `omarchy-toggle-scratch scratchpad` | share menu |
|
||||
| `SUPER + A` | `omarchy-toggle-scratch scratchpad` | — |
|
||||
| `SUPER + A` | `omarchy-toggle-scratch scratchpad` (Tern) | — |
|
||||
| `SUPER + O` | Focus next monitor | pop window out |
|
||||
| `SUPER + SHIFT + O` | Move window to next monitor | Obsidian |
|
||||
| `SUPER + CTRL + SHIFT + J` | Move window to next monitor | — |
|
||||
@@ -276,7 +277,7 @@ Focuses an app's window, cycles to the next one on repeated presses, or launches
|
||||
| `ghostty` | `ghostty` | `ghostty` |
|
||||
| `browser` | zen, brave, chromium, google-chrome, firefox, librewolf, vivaldi, microsoft-edge, helium — excluding `chrome-`/`webapp-` web apps | `omarchy-launch-browser` |
|
||||
| `brave` | `^brave` (Brave Origin and its web apps) | `brave-origin` |
|
||||
| `terminal` | kitty, alacritty, ghostty, foot, wezterm — excluding `^kitty-herdr$` (the scratchpad terminal) | `omarchy-launch-terminal` |
|
||||
| `terminal` | kitty, alacritty, ghostty, foot, wezterm (Tern, the scratchpad terminal, does not match) | `omarchy-launch-terminal` |
|
||||
| `ai` | `claude\|hermes` | `hermes desktop` |
|
||||
| anything else | `^APP$` | the argument as a command |
|
||||
|
||||
@@ -343,7 +344,8 @@ omarchy-toggle-scratch [scratchpad|fastmail|beeper]
|
||||
|
||||
| Profile | Special workspace | Home monitor | Residents (class → launch) |
|
||||
| --- | --- | --- | --- |
|
||||
| `scratchpad` | `special:scratchpad` | Apple Studio Display | `com.anthropic.Claude` → `claude-desktop`; `kitty-herdr` → `kitty --class=kitty-herdr --config ~/.config/kitty/herdr.conf` |
|
||||
| `scratchpad` | `special:scratchpad` | Apple Studio Display | `so.stencil.tern` → `tern` |
|
||||
| `claude` | `special:claude` | Apple Studio Display | `com.anthropic.Claude` → `claude-desktop` |
|
||||
| `fastmail` | `special:fastmail` | focused | `com.fastmail.Fastmail` → `gtk-launch fastmail` |
|
||||
| `beeper` | `special:beeper` | focused | `Beeper` → `gtk-launch beeper` |
|
||||
|
||||
|
||||
@@ -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' })
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -129,9 +129,9 @@ elif [[ $APP == "brave" ]]; then
|
||||
DEFAULT_SPAWN="brave-origin"
|
||||
|
||||
elif [[ $APP == "terminal" ]]; then
|
||||
# Cycle all terminals. kitty-herdr is the SUPER + A scratch terminal
|
||||
# (omarchy-toggle-scratch owns it), so it stays out of the rotation.
|
||||
INSTANCES=($(addresses_matching '(kitty|alacritty|ghostty|foot|wezterm)' '^kitty-herdr$'))
|
||||
# Cycle all terminals. Tern (so.stencil.tern) is the SUPER + A scratch
|
||||
# terminal and the pattern below already leaves it out.
|
||||
INSTANCES=($(addresses_matching '(kitty|alacritty|ghostty|foot|wezterm)'))
|
||||
DEFAULT_LAUNCHER="omarchy-launch-terminal"
|
||||
|
||||
elif [[ $APP == "ai" ]]; then
|
||||
|
||||
@@ -25,7 +25,7 @@ case ${1:-scratchpad} in
|
||||
scratchpad)
|
||||
NAME="scratchpad"
|
||||
HOME_MONITOR="Apple Computer Inc StudioDisplay 0x984262A7"
|
||||
MEMBERS=("kitty-herdr|kitty --class=kitty-herdr --config $HOME/.config/kitty/herdr.conf")
|
||||
MEMBERS=("so.stencil.tern|tern")
|
||||
;;
|
||||
claude)
|
||||
NAME="claude"
|
||||
|
||||
Reference in new issue
Block a user