feat: improve herdr config

This commit is contained in:
kiri committed 2026-09-10 10:19:05 +02:00
1 parent 34cf3d79cd
commit 3bfb233614
2 files changed
+92 -14

No files matched your search

+49 -13
View File
@@ -176,10 +176,9 @@ and system operation/maintenance; these are discussion areas, not a work queue.
Herdr's configured keys are accepted: the user reports liking them in practice.
Niri workspace grouping stays informal while the user discovers what fits; Herdr
provides enough structure for now. No workspace rules or fixed layout are needed.
Further Herdr configuration, agent workflows and project management are explicitly
deferred at the user's request. Do not use them as the default next task or request
workflow feedback unless the user reopens the topic. The active area is theming.
Agent evaluation is
The user reopened Herdr configuration on 2026-09-10 for direct shortcuts and less
interaction friction, using supported configuration only. Layout presets and
launchers are explicitly unwanted; arrange panes manually. Agent evaluation is
explicitly deferred. Do not resume replacement-tool comparisons or ask for an
evaluation task/budget as a prerequisite for this work.
@@ -212,22 +211,59 @@ file. Direct Ctrl+Alt bindings supplement the existing Ctrl+B prefix shortcuts:
| H / J / K / L | Focus pane left / down / up / right |
| U / I | Next / previous workspace |
| O / G | Workspace picker / goto picker |
| 1–9 | Focus agent |
| P / N | Previous / next agent |
| [ / ] | Previous / next tab |
| Enter | New tab |
| V / Minus | Split right / down |
| F | Zoom pane |
| Q | Detach, leaving the session running |
| Shift+H / J / K / L | Swap panes left / down / up / right (Shift on each) |
| Shift+arrows | Resize pane directly |
| R | Resize mode |
| Tab / Shift+Tab | Next / previous pane |
| Backspace | Return to last pane, including across tabs/spaces |
| X / Shift+X | Close pane / tab |
| Shift+P / Shift+A | Rename pane / tab |
| Shift+[ / Shift+] | Move tab earlier / later |
| Shift+Enter | New space |
| Shift+W / Shift+D | Rename / close space |
| W / Shift+B | Open / create worktree |
| Y / E | Copy mode / open scrollback in Neovim |
| Shift+G | Lazygit popup |
| B | Toggle sidebar |
| / | Keybinding help |
| S / Shift+R | Settings / reload configuration |
Inside workspace navigation, U/I moves down/up and H/J/K/L retains pane navigation.
Niri and Kitty bindings are unchanged. Syntax and action names were checked against
the installed Herdr 0.9.0 default config and current upstream documentation.
The user reports that the bindings work well in practice.
Reload Herdr with its existing Ctrl+B then Shift+R binding after activating Nix.
Verification: repository formatting, rendered TOML parsing, flake evaluation,
Zenith no-link system build and whitespace checking passed. No tests or live Herdr
session changes performed by the agent. The user's activation installed the Herdr
config and preserved `config.toml.bak`, but Home Manager later timed out (below).
Niri and Kitty bindings are unchanged. Direct number bindings are removed because
the user finds them unergonomic; built-in prefix shortcuts remain available.
Use one space per project or worktree, tabs for different activities, and panes
for tools needed together. Start Neovim in a shell, split right with Ctrl+Alt+V
for an agent shell, and optionally split that pane down with Ctrl+Alt+Minus for
tests or a server. Choose and launch the agent manually. No preset is installed.
Ctrl+Alt+Shift+G opens lazygit at 90% width/height in the focused pane's working
directory. Quit lazygit to return; the popup owns input until its command exits.
Tabs now open immediately with generated names; rename them only when useful.
New spaces already skip naming, and new panes inherit the current directory by
default. Workspace-close confirmation remains enabled to protect running work.
Direct resizing, previous/next agent navigation, last-pane switching, copy mode,
and Neovim scrollback access avoid extra navigation or mode-entry steps.
No documented native setting or CLI action opens Goto directly in search mode;
that limitation remains under the configuration-only constraint. No input macros,
plugins, or package patches are added.
After activating Nix, reload Herdr with Ctrl+B then Shift+R; subsequent reloads
can use Ctrl+Alt+Shift+R. The expanded shortcuts require interactive verification
through Kitty, including popup working directory, pane swapping/resizing, and
scrollback opening. The earlier bindings were reported working by the user.
Verification (2026-09-10): formatting, flake evaluation, Polaris and Zenith no-link
system builds, and whitespace checks passed. Both hosts generate identical Herdr
TOML, accepted by installed Herdr 0.9.0's `config check`. No activation or live
Herdr session changes were performed.
The earlier activation installed the Herdr config and preserved `config.toml.bak`,
but Home Manager later timed out (below).
Activation fix (2026-09-09): Home Manager's service switch stopped and restarted
the running SharePoint oneshot, then waited until Home Manager's five-minute start
+43 -1
View File
@@ -125,6 +125,7 @@ in
[ui]
agent_panel_sort = "spaces"
prompt_new_tab_name = false
[ui.toast]
delivery = "off"
@@ -141,7 +142,8 @@ in
navigate_workspace_up = "i"
workspace_picker = ["prefix+w", "ctrl+alt+o"]
goto = ["prefix+g", "ctrl+alt+g"]
focus_agent = "ctrl+alt+1..9"
previous_agent = "ctrl+alt+p"
next_agent = "ctrl+alt+n"
previous_tab = ["prefix+p", "ctrl+alt+["]
next_tab = ["prefix+n", "ctrl+alt+]"]
new_tab = ["prefix+c", "ctrl+alt+enter"]
@@ -149,6 +151,46 @@ in
split_horizontal = ["prefix+minus", "ctrl+alt+minus"]
zoom = ["prefix+z", "ctrl+alt+f"]
detach = ["prefix+q", "ctrl+alt+q"]
swap_pane_left = ["prefix+shift+h", "ctrl+alt+shift+h"]
swap_pane_down = ["prefix+shift+j", "ctrl+alt+shift+j"]
swap_pane_up = ["prefix+shift+k", "ctrl+alt+shift+k"]
swap_pane_right = ["prefix+shift+l", "ctrl+alt+shift+l"]
resize_pane_left = "ctrl+alt+shift+left"
resize_pane_down = "ctrl+alt+shift+down"
resize_pane_up = "ctrl+alt+shift+up"
resize_pane_right = "ctrl+alt+shift+right"
resize_mode = ["prefix+r", "ctrl+alt+r"]
cycle_pane_next = ["prefix+tab", "ctrl+alt+tab"]
cycle_pane_previous = ["prefix+shift+tab", "ctrl+alt+shift+tab"]
last_pane = "ctrl+alt+backspace"
close_pane = ["prefix+x", "ctrl+alt+x"]
rename_pane = ["prefix+shift+p", "ctrl+alt+shift+p"]
copy_mode = ["prefix+[", "ctrl+alt+y"]
edit_scrollback = ["prefix+e", "ctrl+alt+e"]
close_tab = ["prefix+shift+x", "ctrl+alt+shift+x"]
rename_tab = ["prefix+shift+t", "ctrl+alt+shift+a"]
move_tab_previous = "ctrl+alt+shift+["
move_tab_next = "ctrl+alt+shift+]"
new_workspace = ["prefix+shift+n", "ctrl+alt+shift+enter"]
rename_workspace = ["prefix+shift+w", "ctrl+alt+shift+w"]
close_workspace = ["prefix+shift+d", "ctrl+alt+shift+d"]
open_worktree = "ctrl+alt+w"
new_worktree = ["prefix+shift+g", "ctrl+alt+shift+b"]
toggle_sidebar = ["prefix+b", "ctrl+alt+b"]
help = ["prefix+?", "ctrl+alt+slash"]
settings = ["prefix+s", "ctrl+alt+s"]
reload_config = ["prefix+shift+r", "ctrl+alt+shift+r"]
[[keys.command]]
key = "ctrl+alt+shift+g"
type = "popup"
command = "lazygit"
description = "Lazygit"
width = "90%"
height = "90%"
'';
home.file.".codex/AGENTS.md".text = ''