mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 19:32:43 +00:00
herdr: move config to prdlk/herdr external; document OSC 8 links
This commit is contained in:
1 parent
21f19e4187
commit
372ef31ee6
17 files changed
+17
-1425
No files matched your search
+1
-1
Submodule dot_config/fish updated: e62dd44fb2...87d8aa0e9c.
@@ -1,154 +0,0 @@
|
||||
onboarding = false
|
||||
|
||||
[ui]
|
||||
# Borderless, like the compositor: panes are told apart by the gap between them
|
||||
# and by the terminal background, not by a drawn frame. Hyprland already puts a
|
||||
# gradient border around the window; a second frame inside it is noise.
|
||||
pane_borders = false
|
||||
pane_outer_borders = false
|
||||
prompt_new_tab_name = false
|
||||
accent = "#5ea1ff"
|
||||
|
||||
status_indicators = "symbols"
|
||||
[theme]
|
||||
name = "terminal"
|
||||
auto_switch = false
|
||||
|
||||
[theme.custom]
|
||||
# Panes keep the terminal's own background, so kitty's translucency, and the
|
||||
# Hyprland blur under it, survive inside herdr.
|
||||
panel_bg = "reset"
|
||||
|
||||
# Surfaces: bg for the spaces rail, bg_alt for the row under the cursor,
|
||||
# bg_highlight for selection — the same three-step ramp as the rest of the theme.
|
||||
sidebar_bg = "#16181a"
|
||||
active_row_bg = "#1e2124"
|
||||
selection_bg = "#3c4048"
|
||||
|
||||
# `accent` fills the active tab and `surface_dim` writes its label, so the pair
|
||||
# is set to the same plate kitty's tab bar uses: the accent mixed 20% into the
|
||||
# background, with the accent itself for the title. A raw #5ea1ff fill would put
|
||||
# a neon block above the panes and swallow the label.
|
||||
accent = "#243348"
|
||||
surface_dim = "#5ea1ff"
|
||||
|
||||
# Agent-state marks.
|
||||
green = "#5eff6c"
|
||||
yellow = "#f1ff5e"
|
||||
red = "#ff6e5e"
|
||||
peach = "#ffbd5e"
|
||||
mauve = "#bd5eff"
|
||||
|
||||
[ui.toast]
|
||||
delivery = "system"
|
||||
|
||||
[keys]
|
||||
# tmux-style bindings (prefix is the leader, default ctrl+b)
|
||||
split_vertical = "prefix+%"
|
||||
split_horizontal = 'prefix+"'
|
||||
detach = "prefix+d"
|
||||
|
||||
# leader+s opens the workspace ("spaces") picker (settings moves off prefix+s to make room)
|
||||
workspace_picker = "prefix+s"
|
||||
settings = "prefix+shift+s"
|
||||
|
||||
# vim-style j/k move the selection up/down inside the spaces picker
|
||||
# (frees pane up/down in navigate mode; use arrows or ctrl+b j/k for pane focus)
|
||||
navigate_workspace_up = "k"
|
||||
navigate_workspace_down = "j"
|
||||
navigate_pane_up = ""
|
||||
navigate_pane_down = ""
|
||||
|
||||
# leader+. / leader+, step to the next / previous agent in the panel
|
||||
next_agent = "prefix+."
|
||||
previous_agent = "prefix+,"
|
||||
|
||||
# leader+j / leader+k cycle next / previous workspace (driven by ghostty
|
||||
# ctrl+shift+j/k). Frees prefix+j/k from pane focus, which moves to arrows;
|
||||
# directional pane movement is also on ctrl+hjkl via vim-herdr-navigation.
|
||||
next_workspace = "prefix+j"
|
||||
previous_workspace = "prefix+k"
|
||||
focus_pane_up = "prefix+up"
|
||||
focus_pane_down = "prefix+down"
|
||||
focus_pane_left = "prefix+left"
|
||||
focus_pane_right = "prefix+right"
|
||||
|
||||
# leader+a focuses the agent panel for keyboard browsing
|
||||
# (j/k to move, enter to jump, esc to leave) — needs the rebuilt binary
|
||||
|
||||
[experimental]
|
||||
pane_history = false
|
||||
kitty_graphics = true
|
||||
|
||||
switch_ascii_input_source_in_prefix = true
|
||||
[[keys.command]]
|
||||
key = "ctrl+h"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.left"
|
||||
description = "navigate left (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+j"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.down"
|
||||
description = "navigate down (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+k"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.up"
|
||||
description = "navigate up (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+l"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.right"
|
||||
description = "navigate right (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+e"
|
||||
type = "plugin_action"
|
||||
command = "chmarax.herdr-nvim.toggle"
|
||||
description = "nvim sidebar (left of current panes; see ~/.config/herdr-nvim/config.toml)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+o"
|
||||
type = "plugin_action"
|
||||
command = "chmarax.herdr-nvim.pick-file"
|
||||
description = "open file from agent output"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+t"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.menu"
|
||||
description = "Switchboard menu"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+p"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.commands"
|
||||
description = "Switchboard commands"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+l"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.git"
|
||||
description = "Switchboard git"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+k"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.projects"
|
||||
description = "Switchboard projects"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+y"
|
||||
type = "shell"
|
||||
command = '"${HERDR_BIN_PATH}" plugin pane open --plugin official.browser --entrypoint browser --placement split --direction right --focus'
|
||||
description = "open browser in right split"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+o"
|
||||
type = "shell"
|
||||
command = '"${HERDR_BIN_PATH}" plugin pane open --plugin official.browser --entrypoint browser --placement overlay --focus'
|
||||
description = "open browser overlay"
|
||||
@@ -1,124 +0,0 @@
|
||||
onboarding = false
|
||||
|
||||
[ui.toast]
|
||||
delivery = "system"
|
||||
|
||||
[ui]
|
||||
|
||||
show_agent_labels_on_pane_borders = true
|
||||
agent_panel_sort = "priority"
|
||||
|
||||
[keys]
|
||||
# tmux-style bindings (prefix is the leader, default ctrl+b)
|
||||
split_vertical = "prefix+%"
|
||||
split_horizontal = 'prefix+"'
|
||||
detach = "prefix+d"
|
||||
|
||||
# leader+s opens the workspace ("spaces") picker (settings moves off prefix+s to make room)
|
||||
workspace_picker = "prefix+s"
|
||||
settings = "prefix+shift+s"
|
||||
|
||||
# vim-style j/k move the selection up/down inside the spaces picker
|
||||
# (frees pane up/down in navigate mode; use arrows or ctrl+b j/k for pane focus)
|
||||
navigate_workspace_up = "k"
|
||||
navigate_workspace_down = "j"
|
||||
navigate_pane_up = ""
|
||||
navigate_pane_down = ""
|
||||
|
||||
# leader+. / leader+, step to the next / previous agent in the panel
|
||||
next_agent = "prefix+."
|
||||
previous_agent = "prefix+,"
|
||||
|
||||
# leader+j / leader+k cycle next / previous workspace (driven by ghostty
|
||||
# ctrl+shift+j/k). Frees prefix+j/k from pane focus, which moves to arrows;
|
||||
# directional pane movement is also on ctrl+hjkl via vim-herdr-navigation.
|
||||
next_workspace = "prefix+j"
|
||||
previous_workspace = "prefix+k"
|
||||
focus_pane_up = "prefix+up"
|
||||
focus_pane_down = "prefix+down"
|
||||
focus_pane_left = "prefix+left"
|
||||
focus_pane_right = "prefix+right"
|
||||
|
||||
# leader+a focuses the agent panel for keyboard browsing
|
||||
# (j/k to move, enter to jump, esc to leave) — needs the rebuilt binary
|
||||
|
||||
[experimental]
|
||||
pane_history = false
|
||||
kitty_graphics = true
|
||||
|
||||
switch_ascii_input_source_in_prefix = true
|
||||
[theme]
|
||||
name = "terminal"
|
||||
auto_switch = false
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+h"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.left"
|
||||
description = "navigate left (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+j"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.down"
|
||||
description = "navigate down (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+k"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.up"
|
||||
description = "navigate up (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "ctrl+l"
|
||||
type = "plugin_action"
|
||||
command = "vim-herdr-navigation.right"
|
||||
description = "navigate right (vim/herdr)"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+e"
|
||||
type = "plugin_action"
|
||||
command = "chmarax.herdr-nvim.toggle"
|
||||
description = "nvim sidebar"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+o"
|
||||
type = "plugin_action"
|
||||
command = "chmarax.herdr-nvim.pick-file"
|
||||
description = "open file from agent output"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+t"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.menu"
|
||||
description = "Switchboard menu"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+p"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.commands"
|
||||
description = "Switchboard commands"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+l"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.git"
|
||||
description = "Switchboard git"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+k"
|
||||
type = "plugin_action"
|
||||
command = "switchboard.projects"
|
||||
description = "Switchboard projects"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+y"
|
||||
type = "shell"
|
||||
command = '"${HERDR_BIN_PATH}" plugin pane open --plugin official.browser --entrypoint browser --placement split --direction right --focus'
|
||||
description = "open browser in right split"
|
||||
|
||||
[[keys.command]]
|
||||
key = "prefix+shift+o"
|
||||
type = "shell"
|
||||
command = '"${HERDR_BIN_PATH}" plugin pane open --plugin official.browser --entrypoint browser --placement overlay --focus'
|
||||
description = "open browser overlay"
|
||||
Whitespace-only changes.
@@ -1,134 +0,0 @@
|
||||
# Font Configuration
|
||||
font_size 11
|
||||
font_family VictorMono Nerd Font
|
||||
bold_italic_font auto
|
||||
shell_integration enabled
|
||||
# Control
|
||||
allow_remote_control yes
|
||||
listen_on unix:@mykitty
|
||||
# Shell — every kitty OS window attaches to the shared tmux session
|
||||
shell tmux new-session -A -s main
|
||||
# Window Configuration
|
||||
window_padding_width 12
|
||||
background_opacity 0.9
|
||||
hide_window_decorations yes
|
||||
# Layouts now handled by tmux; keep fat available for any non-tmux use
|
||||
enabled_layouts fat:bias=75;full_size=1;mirrored=false
|
||||
# Cursor Configuration
|
||||
cursor_blink_interval 1
|
||||
# Scrollback (tmux owns scrollback in-session; this covers anything outside it)
|
||||
scrollback_lines 3000
|
||||
# Terminal features
|
||||
copy_on_select auto
|
||||
strip_trailing_spaces smart
|
||||
# ── Key bindings → forwarded to tmux (prefix C-b = \x02) ────────────────
|
||||
# send_text triggers the exact bind-keys in tmux.conf, in-session.
|
||||
# Panes (kitty "windows" → tmux panes)
|
||||
map super+w send_text all \x02x
|
||||
map super+t send_text all \x02%
|
||||
map super+n send_text all \x02"
|
||||
# Clipboard (kitty-native)
|
||||
map super+c copy_to_clipboard
|
||||
map super+v paste_from_clipboard
|
||||
map ctrl+v paste_from_clipboard
|
||||
# Tabs (kitty "tabs" → tmux windows; your bind-key t/H/L)
|
||||
map alt+h send_text all \x02H
|
||||
map alt+l send_text all \x02L
|
||||
map super+enter send_text all \x02t
|
||||
# Pane navigation: pass ctrl+hjkl through to tmux/nvim
|
||||
# (pass_keys.py kitten removed — vim-tmux-navigator replaces it)
|
||||
# Pane resizing (prefix + ctrl+arrow = tmux default resize)
|
||||
map super+left send_text all \x02\x1b[1;5D
|
||||
map super+right send_text all \x02\x1b[1;5C
|
||||
map super+up send_text all \x02\x1b[1;5A
|
||||
map super+down send_text all \x02\x1b[1;5B
|
||||
|
||||
# Direct window jumps (tmux prefix+N)
|
||||
map alt+q send_text all \x021
|
||||
map alt+w send_text all \x022
|
||||
map alt+e send_text all \x023
|
||||
map alt+r send_text all \x024
|
||||
map alt+t send_text all \x025
|
||||
map alt+y send_text all \x026
|
||||
map alt+u send_text all \x027
|
||||
map alt+i send_text all \x028
|
||||
map alt+o send_text all \x029
|
||||
# Session controls
|
||||
map super+d send_text all \x02d
|
||||
map super+s send_text all \x02s
|
||||
map super+z send_text all \x02z
|
||||
# ── Tab bar: hidden — tmux-dotbar owns the status UI ────────────────────
|
||||
tab_bar_style hidden
|
||||
# BEGIN_KITTY_THEME
|
||||
# cyberdream (current-theme.conf → themes/cyberdream.conf)
|
||||
include current-theme.conf
|
||||
# END_KITTY_THEME
|
||||
#
|
||||
active_opacity 0.9
|
||||
|
||||
|
||||
# ── Plugins ──────────────────────────────────────────────────────────────
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'vaaleyard/tmux-dotbar'
|
||||
set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
|
||||
set -g @plugin 'omerxx/tmux-sessionx'
|
||||
# ── Kitty compatibility ──────────────────────────────────────────────────
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ga terminal-overrides ",xterm-kitty:Tc"
|
||||
set -as terminal-features ",xterm-kitty:RGB:usstyle:hyperlinks:clipboard:extkeys"
|
||||
set -s extended-keys on # kitty keyboard protocol → nvim
|
||||
# Kitty graphics protocol passthrough (yazi / image preview)
|
||||
set -g allow-passthrough on
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
# ── Clipboard (Wayland / Niri) ───────────────────────────────────────────
|
||||
set -g set-clipboard on # OSC 52 — covers ssh'd sessions
|
||||
set -g mouse on
|
||||
setw -g mode-keys vi
|
||||
bind -T copy-mode-vi v send -X begin-selection
|
||||
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "wl-copy"
|
||||
bind -T copy-mode-vi Y send -X copy-pipe-and-cancel "wl-copy" \; send -X cancel
|
||||
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "wl-copy"
|
||||
# ── Titles → Niri active window ──────────────────────────────────────────
|
||||
set -g set-titles on
|
||||
set -g set-titles-string "#S › #{pane_current_command} · #{b:pane_current_path}"
|
||||
setw -g automatic-rename on
|
||||
set -g automatic-rename-format "#{window_icon} #{b:pane_current_path}"
|
||||
# ── QoL ──────────────────────────────────────────────────────────────────
|
||||
set -g history-limit 50000
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
set -g renumber-windows on
|
||||
# ── Keybinds ─────────────────────────────────────────────────────────────
|
||||
bind-key t new-window -c "#{pane_current_path}"
|
||||
bind-key [ previous-window
|
||||
bind-key ] next-window
|
||||
bind-key H previous-window
|
||||
bind-key L next-window
|
||||
# Splits inherit cwd (kitty super+t / super+n land here)
|
||||
# vsplit: new pane right at 35% width · hsplit: new pane below at 25% height
|
||||
bind % split-window -h -l 30% -c "#{pane_current_path}"
|
||||
bind '"' split-window -v -l 25% -c "#{pane_current_path}"
|
||||
# Copy-mode entry (default prefix+[ is rebound above)
|
||||
bind Escape copy-mode
|
||||
# ── Pane navigation: ctrl+hjkl, no prefix ────────────────────────────────
|
||||
# Vim-aware: if the pane runs (n)vim, forward the key so vim handles its
|
||||
# own window movement (pair with vim-tmux-navigator in AstroNvim).
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|l?n?vim?x?|fzf)(diff)?$'"
|
||||
bind -n C-h if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||
bind -n C-j if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||
bind -n C-k if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||
bind -n C-l if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||
# Same nav from inside copy-mode
|
||||
bind -T copy-mode-vi C-h select-pane -L
|
||||
bind -T copy-mode-vi C-j select-pane -D
|
||||
bind -T copy-mode-vi C-k select-pane -U
|
||||
bind -T copy-mode-vi C-l select-pane -R
|
||||
# Clear-screen escape hatch (C-l is consumed above)
|
||||
bind C-l send-keys C-l
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.tmux/plugins/tpm/tpm'
|
||||
|
||||
|
||||
Lets synchronize the Mod+H and Mod+L from niri to work with the tmux window bindings for optimized key productivity
|
||||
File diff suppressed because it is too large.
Load diff
Whitespace-only changes.
Whitespace-only changes.
Reference in new issue
Block a user