|
|
|
@@ -0,0 +1,136 @@
|
|
|
|
|
# herdr configuration
|
|
|
|
|
# Place this file at ~/.config/herdr/config.toml
|
|
|
|
|
# Apply changes with: herdr server reload-config
|
|
|
|
|
|
|
|
|
|
# Show first-run notification setup on startup.
|
|
|
|
|
# Missing also shows onboarding; set false after you've chosen.
|
|
|
|
|
onboarding = false
|
|
|
|
|
|
|
|
|
|
[theme]
|
|
|
|
|
# Built-in themes: catppuccin, terminal, tokyo-night, dracula, nord,
|
|
|
|
|
# gruvbox, one-dark, solarized, kanagawa, rose-pine,
|
|
|
|
|
# vesper
|
|
|
|
|
name = "one-dark"
|
|
|
|
|
|
|
|
|
|
# Follow host terminal light/dark appearance and switch Herdr UI themes.
|
|
|
|
|
# Existing manual behavior is unchanged unless this is true.
|
|
|
|
|
# auto_switch = false
|
|
|
|
|
# dark_name = "catppuccin"
|
|
|
|
|
# light_name = "catppuccin-latte"
|
|
|
|
|
|
|
|
|
|
# Override individual color tokens on top of the base theme.
|
|
|
|
|
# Accepts: hex (#rrggbb), named colors, rgb(r,g,b), or panel_bg = "reset"
|
|
|
|
|
# [theme.custom]
|
|
|
|
|
# panel_bg = "reset"
|
|
|
|
|
# accent = "#f5c2e7"
|
|
|
|
|
# red = "#ff6188"
|
|
|
|
|
# green = "#a6e3a1"
|
|
|
|
|
|
|
|
|
|
[terminal]
|
|
|
|
|
# Executable used for new interactive panes.
|
|
|
|
|
# Empty means $SHELL, then /bin/sh.
|
|
|
|
|
default_shell = "/bin/zsh"
|
|
|
|
|
|
|
|
|
|
[update]
|
|
|
|
|
# Update channel used by background version checks and `herdr update`.
|
|
|
|
|
# Use "stable" for normal releases or "preview" for opt-in preview builds.
|
|
|
|
|
channel = "stable"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[keys]
|
|
|
|
|
prefix = "ctrl+a"
|
|
|
|
|
|
|
|
|
|
# Prefix-mode actions
|
|
|
|
|
help = "prefix+?"
|
|
|
|
|
settings = "prefix+shift+s" # default prefix+s is used for split_horizontal below
|
|
|
|
|
# detach = "prefix+q"
|
|
|
|
|
# reload_config = "prefix+shift+r"
|
|
|
|
|
# open_notification_target = "prefix+o"
|
|
|
|
|
# workspace_picker = "prefix+w"
|
|
|
|
|
# goto = "prefix+g"
|
|
|
|
|
# new_workspace = "prefix+shift+n"
|
|
|
|
|
# new_worktree = "prefix+shift+g"
|
|
|
|
|
# open_worktree = "" # optional, unset by default
|
|
|
|
|
# remove_worktree = "" # optional, unset by default; opens confirmation
|
|
|
|
|
# rename_workspace = "prefix+shift+w"
|
|
|
|
|
# close_workspace = "prefix+shift+d"
|
|
|
|
|
|
|
|
|
|
previous_workspace = "prefix+ctrl+k"
|
|
|
|
|
next_workspace = "prefix+ctrl+j"
|
|
|
|
|
|
|
|
|
|
# previous_agent = "" # optional, unset by default
|
|
|
|
|
# next_agent = "" # optional, unset by default
|
|
|
|
|
# focus_agent = "" # optional indexed binding, e.g. "prefix+alt+1..9"
|
|
|
|
|
# remote_image_paste = "ctrl+v" # only active in herdr --remote; empty disables raw-key image paste
|
|
|
|
|
|
|
|
|
|
new_tab = "prefix+c"
|
|
|
|
|
rename_tab = ["prefix+comma", "prefix+shift+t"]
|
|
|
|
|
previous_tab = ["prefix+p", "prefix+ctrl+h"]
|
|
|
|
|
next_tab = ["prefix+n", "prefix+ctrl+l"]
|
|
|
|
|
switch_tab = "prefix+1..9"
|
|
|
|
|
switch_workspace = "prefix+alt+1..9"
|
|
|
|
|
close_tab = "prefix+shift+x"
|
|
|
|
|
rename_pane = ["prefix+shift+p", "prefix+<"] # prefix+shift+comma
|
|
|
|
|
# edit_scrollback = "prefix+e"
|
|
|
|
|
focus_pane_left = "prefix+h"
|
|
|
|
|
focus_pane_down = "prefix+j"
|
|
|
|
|
focus_pane_up = "prefix+k"
|
|
|
|
|
focus_pane_right = "prefix+l"
|
|
|
|
|
# cycle_pane_next = "prefix+tab"
|
|
|
|
|
# cycle_pane_previous = "prefix+shift+tab"
|
|
|
|
|
# last_pane = "" # optional, unset by default; bind e.g. "prefix+tab" for global back-and-forth
|
|
|
|
|
split_vertical = ["prefix+v", "prefix+|"]
|
|
|
|
|
split_horizontal = ["prefix+s", "prefix+minus"]
|
|
|
|
|
# close_pane = "prefix+x"
|
|
|
|
|
# zoom = "prefix+z" # legacy alias: fullscreen
|
|
|
|
|
resize_mode = "prefix+r"
|
|
|
|
|
toggle_sidebar = "prefix+b"
|
|
|
|
|
|
|
|
|
|
copy_mode = ["prefix+[", "prefix+esc"]
|
|
|
|
|
|
|
|
|
|
# [worktrees]
|
|
|
|
|
# directory = "~/.herdr/worktrees"
|
|
|
|
|
|
|
|
|
|
[ui]
|
|
|
|
|
|
|
|
|
|
# Ask for a tab name before creating a new tab.
|
|
|
|
|
prompt_new_tab_name = true
|
|
|
|
|
|
|
|
|
|
# Draw borders around split panes.
|
|
|
|
|
pane_borders = true
|
|
|
|
|
|
|
|
|
|
# Keep split panes visually separated instead of sharing divider borders.
|
|
|
|
|
pane_gaps = true
|
|
|
|
|
|
|
|
|
|
# Show detected/reported agent labels in split pane borders when no manual pane name is set.
|
|
|
|
|
show_agent_labels_on_pane_borders = true
|
|
|
|
|
|
|
|
|
|
# Agent panel ordering: "spaces" (grouped by space) or "priority" (attention queue).
|
|
|
|
|
# "workspaces" is accepted as an alias for "spaces".
|
|
|
|
|
agent_panel_sort = "spaces"
|
|
|
|
|
|
|
|
|
|
# Accent color for highlights, borders, and navigation UI.
|
|
|
|
|
# Accepts: hex (#89b4fa), named colors (cyan, blue, magenta), or rgb(r,g,b)
|
|
|
|
|
accent = "cyan"
|
|
|
|
|
|
|
|
|
|
[ui.toast]
|
|
|
|
|
delivery = "herdr"
|
|
|
|
|
|
|
|
|
|
[ui.toast.herdr]
|
|
|
|
|
position = "bottom-right"
|
|
|
|
|
|
|
|
|
|
[ui.toast.clipboard]
|
|
|
|
|
enabled = true
|
|
|
|
|
position = "bottom-center"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[experimental]
|
|
|
|
|
# Save recent pane screen history across full server restarts.
|
|
|
|
|
pane_history = false
|
|
|
|
|
|
|
|
|
|
[advanced]
|
|
|
|
|
scrollback_limit_bytes = 33554432 # 32 MiB ~ 50k lines (tmux history-limit)
|
|
|
|
|
|
|
|
|
|
## Differences to tmux
|
|
|
|
|
# - prefix+n changed meaning: in tmux it was swap-pane -U; in herdr it's next tab. Pane swapping is prefix+shift+h/j/k/l - which was pane resize in your tmux. Resizing is now a mode: prefix+r.
|
|
|
|
|
# - No equivalents: window reordering (</>), paste buffers (b/p/P), vi mode-keys, base-index, escape-time, focus-events, aggressive-resize. Config reload is herdr server reload-config instead of prefix+r. The status-bar cpu/mem/clock plugins are replaced by herdr's sidebar; tmux-fzf's pickers map to prefix+w (workspace picker) and prefix+g (goto).
|