feat(config): add initial Ghostty, Herdr, and Yazi configuration files

This commit is contained in:
Prad Nukala committed 2026-08-11 15:12:06 -04:00
1 parent 6406208b35
commit 60c11de029
20 files changed
+2863 -1

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
# Font Configuration
theme = noctalia
font-size = 12.5
font-family = Victor Mono NF
background-blur = true
# Window Configuration
window-decoration = false
window-padding-x = 12
window-padding-y = 12
background-opacity = 0.9
# Cursor Configuration
cursor-style = underline
cursor-style-blink = true
# Scrollback
scrollback-limit = 3023
# Terminal features
mouse-hide-while-typing = true
copy-on-select = false
confirm-close-surface = false
# Disable annoying copied to clipboard
app-notifications = no-clipboard-copy,no-config-reload
# Key bindings for common actions
keybind = cmd+c=copy_to_clipboard
keybind = cmd+v=paste_from_clipboard
keybind = cmd+n=new_window
keybind = ctrl+plus=increase_font_size:1
keybind = ctrl+minus=decrease_font_size:1
keybind = ctrl+zero=reset_font_size
# Tab configuration
gtk-titlebar = false
quit-after-last-window-closed = false
quit-after-last-window-closed-delay = 5m
# Shell integration
shell-integration = detect
shell-integration-features = cursor,sudo,title,no-cursor
keybind = shift+enter=text:\n
# Rando stuff
gtk-single-instance = true
# Launch straight into Herdr (bare `herdr` launches or attaches to the
# persistent session; closing the window detaches, sessions survive)
command = herdr
# ── Herdr sync: Ctrl+Shift chords → prefix (\x02 = ctrl+b) bytes ──
# Later keybind lines overwrite earlier/default ones; keep these LAST.
# reload_config moves off ctrl+shift+, (taken by Herdr settings below)
keybind = ctrl+shift+alt+,=reload_config
keybind = ctrl+shift+n=text:\x02%
keybind = ctrl+shift+t=text:\x02c
keybind = ctrl+tab=text:\x02n
keybind = ctrl+shift+tab=text:\x02p
keybind = ctrl+shift+f=text:\x02s
keybind = ctrl+shift+l=text:\x02.
keybind = ctrl+shift+h=text:\x02,
keybind = ctrl+shift+j=text:\x02j
keybind = ctrl+shift+k=text:\x02k
keybind = super+enter=text:\x02N
keybind = super+r=text:\x02W
keybind = ctrl+shift+r=text:\x02T
keybind = ctrl+shift+,=text:\x02S
+47
View File
@@ -0,0 +1,47 @@
# Font Configuration
theme = noctalia
font-size = 11
font-family = Victor Mono NF
background-blur = true
# Window Configuration
window-decoration = false
window-padding-x = 12
window-padding-y = 12
background-opacity = 0.9
# Cursor Configuration
cursor-style = underline
cursor-style-blink = true
# Scrollback
scrollback-limit = 3023
# Terminal features
mouse-hide-while-typing = true
copy-on-select = false
confirm-close-surface = false
# Disable annoying copied to clipboard
app-notifications = no-clipboard-copy,no-config-reload
# Key bindings for common actions
keybind = cmd+c=copy_to_clipboard
keybind = cmd+v=paste_from_clipboard
keybind = cmd+n=new_window
keybind = ctrl+plus=increase_font_size:1
keybind = ctrl+minus=decrease_font_size:1
keybind = ctrl+zero=reset_font_size
# Tab configuration
gtk-titlebar = false
quit-after-last-window-closed = false
quit-after-last-window-closed-delay = 5m
# Shell integration
shell-integration = detect
shell-integration-features = cursor,sudo,title,no-cursor
keybind = shift+enter=text:\n
# Rando stuff
gtk-single-instance = true
+1
View File
@@ -0,0 +1 @@
theme = noctalia
+43
View File
@@ -0,0 +1,43 @@
# Auto-generated by ii wallpaper theming system
# Do not edit manually - changes will be overwritten
background = #1D1D1D
foreground = #DFE3E3
cursor-color = #DFE3E3
cursor-text = #1D1D1D
selection-background = #DFE3E3
selection-foreground = #1D1D1D
# Black
palette = 0=#1D1D1D
palette = 8=#8F9192
# Red
palette = 1=#FF9BAD
palette = 9=#FFCFD7
# Green
palette = 2=#00FD98
palette = 10=#C1FFD5
# Yellow
palette = 3=#FFF17B
palette = 11=#FFF39B
# Blue
palette = 4=#6DD0FF
palette = 12=#DAF0FF
# Magenta
palette = 5=#D7B0FF
palette = 13=#F0DFFF
# Cyan
palette = 6=#3DF0F5
palette = 14=#B8FDFF
# White
palette = 7=#ADAAA2
palette = 15=#DFE3E3
+32
View File
@@ -0,0 +1,32 @@
# Forces bold text to use the bright color palette
bold-is-bright = true
# Background and foreground
background = #101010
foreground = #ffffff
# Cursor colors
cursor-color = #b0b0b0
cursor-text = #101010
# Selection colors
selection-background = #272727
selection-foreground = #b0b0b0
# ANSI color palette (0-15)
palette = 0=#101010
palette = 1=#ff7676
palette = 2=#a3d6a3
palette = 3=#ffffff
palette = 4=#b3b3b3
palette = 5=#f4b8e4
palette = 6=#fafafa
palette = 7=#a5adce
palette = 8=#50585d
palette = 9=#ff5733
palette = 10=#86cd82
palette = 11=#d9ba73
palette = 12=#ffffff
palette = 13=#f2a4db
palette = 14=#5abfb5
palette = 15=#b5bfe2
+32
View File
@@ -0,0 +1,32 @@
# Forces bold text to use the bright color palette
bold-is-bright = true
# Background and foreground
background = #faf9f5
foreground = #101010
# Cursor colors
cursor-color = #6a6a6a
cursor-text = #ebebeb
# Selection colors
selection-background = #ebebeb
selection-foreground = #101010
# ANSI color palette (0-15)
palette = 0=#ebebeb
palette = 1=#ca0043
palette = 2=#407f00
palette = 3=#926200
palette = 4=#3d3d3d
palette = 5=#a200d1
palette = 6=#007d7d
palette = 7=#6a6a6a
palette = 8=#969ba5
palette = 9=#f30052
palette = 10=#4f9a00
palette = 11=#b07700
palette = 12=#000000
palette = 13=#c301fb
palette = 14=#009797
palette = 15=#101010
+22
View File
@@ -0,0 +1,22 @@
palette = 0= #28262c
palette = 1= #fd4663
palette = 2= #a398b3
palette = 3= #9c8da5
palette = 4= #a18fa3
palette = 5= #bdb6c9
palette = 6= #c1b8c7
palette = 7= #f2f2f3
palette = 8= #b2b0b5
palette = 9= #fd4663
palette = 10= #a398b3
palette = 11= #9c8da5
palette = 12= #a18fa3
palette = 13= #bdb6c9
palette = 14= #c1b8c7
palette = 15= #f2f2f3
background = #1e1c21
foreground = #f2f2f3
cursor-color = #f2f2f3
cursor-text = #1e1c21
selection-background = #a18fa3
selection-foreground = #1e1c22
+74
View File
@@ -0,0 +1,74 @@
onboarding = false
[ui]
show_agent_labels_on_pane_borders = false
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 = "rose-pine"
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)"
[ui.toast]
delivery = "system"
+64
View File
@@ -0,0 +1,64 @@
onboarding = false
[ui]
show_agent_labels_on_pane_borders = false
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+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 = "rose-pine"
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)"
[ui.toast]
delivery = "system"
Whitespace-only changes.
+146
View File
@@ -0,0 +1,146 @@
2026-05-28T19:40:57.057705Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1680670
2026-05-28T19:40:57.057733Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-28T19:40:57.262004Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-05-28T19:42:19.434571Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1680670
2026-05-28T19:42:26.639491Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1683643
2026-05-28T19:42:26.639525Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-28T19:42:26.719401Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-05-28T20:31:23.777641Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1683643
2026-05-28T20:31:26.570038Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1791775
2026-05-28T20:31:26.570063Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-28T20:31:26.759313Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-05-28T20:31:28.727582Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1791775
2026-05-28T20:37:39.576802Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1805927
2026-05-28T20:37:39.576831Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-28T20:37:39.620232Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-05-28T20:38:17.881212Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1805927
2026-05-28T20:38:20.643896Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1809290
2026-05-28T20:38:20.643927Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-28T20:38:20.646586Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-05-29T15:05:34.667934Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=61185
2026-05-29T15:05:34.667982Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-05-29T15:05:34.679337Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-03T14:32:02.360706Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=31587
2026-06-03T14:32:02.360760Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-03T14:32:02.368403Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-03T14:32:31.855540Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=31587
2026-06-03T15:51:52.825690Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=172456
2026-06-03T15:51:52.825718Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-03T15:51:53.062403Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-08T14:52:22.694135Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=368548
2026-06-08T14:52:22.694194Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-08T14:52:22.702171Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-10T14:30:43.565299Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=56627
2026-06-10T14:30:43.565345Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-10T14:30:43.598445Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-10T20:48:04.152703Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=750091
2026-06-10T20:48:04.152731Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-10T20:48:04.160687Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-10T21:09:48.411301Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=750091
2026-06-10T21:09:55.929109Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=858089
2026-06-10T21:09:55.929138Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-10T21:09:55.937811Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-11T02:49:30.176667Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=858089
2026-06-11T12:59:13.247855Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=165087
2026-06-11T12:59:13.248187Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-11T12:59:13.249978Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-11T12:59:29.638175Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=165087
2026-06-11T13:05:28.328247Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=182410
2026-06-11T13:05:28.328275Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-11T13:05:28.511680Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-15T18:04:39.006183Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=400798
2026-06-15T18:04:39.006505Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-15T18:04:39.007199Z INFO herdr::client: handshake succeeded version=11 encoding=SemanticFrame
2026-06-15T18:05:02.645539Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=400798
2026-06-15T18:05:12.138850Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=404873
2026-06-15T18:05:12.138895Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-15T18:05:12.149336Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-15T18:06:27.459183Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=404873
2026-06-16T01:58:58.687849Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=1115079
2026-06-16T01:58:58.687903Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-16T01:58:58.759505Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-16T01:59:13.356088Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=1115079
2026-06-16T20:30:39.749269Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=82514
2026-06-16T20:30:39.749614Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-16T20:30:39.792184Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-16T20:35:24.106218Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=122647
2026-06-16T20:35:24.106247Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-16T20:35:24.343929Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-16T20:36:11.253746Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=126138
2026-06-16T20:36:11.253776Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-16T20:36:11.431513Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-19T16:27:36.734121Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=76862
2026-06-19T16:27:36.734147Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-19T16:27:36.734215Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-20T05:03:47.038376Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=76862
2026-06-27T00:01:00.932547Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=164638
2026-06-27T00:01:00.932956Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-27T00:01:00.934155Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-27T00:02:47.644799Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=164638
2026-06-27T00:03:11.186443Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=167846
2026-06-27T00:03:11.186471Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-27T00:03:11.216769Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-27T00:09:43.682841Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=167846
2026-06-27T00:09:45.678252Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=176355
2026-06-27T00:09:45.678280Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-06-27T00:09:45.692879Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-06-27T00:15:44.471267Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=176355
2026-07-02T21:32:15.764489Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=233448
2026-07-02T21:32:15.764745Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-02T21:32:15.765231Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-07-03T23:10:28.602029Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=286613
2026-07-03T23:10:28.602324Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-03T23:10:28.608148Z INFO herdr::client: handshake succeeded version=14 encoding=SemanticFrame
2026-07-03T23:10:47.971834Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=286613
2026-07-15T18:28:37.583336Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=245041
2026-07-15T18:28:37.583587Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-15T18:28:37.592449Z INFO herdr::client: handshake succeeded version=16 encoding=SemanticFrame
2026-07-15T18:29:32.006609Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=245041
2026-07-23T16:57:59.203976Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=119405
2026-07-23T16:57:59.204188Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-23T16:57:59.212810Z INFO herdr::client: handshake succeeded version=16 encoding=SemanticFrame
2026-07-23T16:58:03.577736Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=119405
2026-07-23T17:32:26.908954Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=158519
2026-07-23T17:32:26.908974Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-23T17:32:26.909097Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
2026-07-23T17:34:46.307539Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=158519
2026-07-23T17:35:25.610182Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=162811
2026-07-23T17:35:25.610209Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-23T17:35:25.630930Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
2026-07-23T17:35:36.061207Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=162811
2026-07-23T17:36:10.748541Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=164221
2026-07-23T17:36:10.748562Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-07-23T17:36:10.817594Z INFO herdr::client: handshake succeeded version=17 encoding=SemanticFrame
2026-07-23T19:29:42.325170Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=164221
2026-08-09T19:05:36.891702Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=192692
2026-08-09T19:05:36.891879Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-09T19:05:36.893062Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-09T19:08:20.252723Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=192692
2026-08-09T19:13:18.999174Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=225176
2026-08-09T19:13:18.999192Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-09T19:13:19.081080Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-09T19:15:24.551494Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=225176
2026-08-10T20:41:02.491553Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=466140
2026-08-10T20:41:02.491587Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-10T20:41:02.493525Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-10T20:55:36.944275Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=488820
2026-08-10T20:55:36.944295Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-10T20:55:36.949421Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-10T20:56:27.365912Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=466140
2026-08-10T20:57:26.892918Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=492752
2026-08-10T20:57:26.892943Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-10T20:57:26.906140Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-11T18:40:51.207726Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=176655
2026-08-11T18:40:51.207960Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-11T18:40:51.210518Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-11T18:41:04.828470Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=176655
2026-08-11T18:46:13.849126Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=183260
2026-08-11T18:46:13.849148Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-11T18:46:14.063265Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-11T19:08:39.960619Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=216140
2026-08-11T19:08:39.960643Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-11T19:08:40.116564Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-11T19:09:25.791477Z INFO herdr::logging: herdr starting event="app.startup" subsystem="client" outcome="started" pid=218168
2026-08-11T19:09:25.791502Z INFO herdr::client: connecting to server path=/home/prad/.config/herdr/herdr-client.sock
2026-08-11T19:09:25.993975Z INFO herdr::client: handshake succeeded version=19 encoding=SemanticFrame
2026-08-11T19:09:28.222858Z INFO herdr::logging: herdr exiting event="app.shutdown" subsystem="client" outcome="completed" pid=216140
File diff suppressed because it is too large. Load diff
+134
View File
@@ -0,0 +1,134 @@
# 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
# Noctalia
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
+137
View File
@@ -0,0 +1,137 @@
[
{
"plugin_id": "official.browser",
"name": "Browser",
"version": "0.1.0",
"min_herdr_version": "0.7.4",
"description": "Open and inspect real browser pages from Herdr.",
"manifest_path": "/home/prad/.config/herdr/plugins/github/official.browser-ff2a44eccae9/herdr-plugin.toml",
"plugin_root": "/home/prad/.config/herdr/plugins/github/official.browser-ff2a44eccae9",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"actions": [
{
"id": "open-localhost",
"title": "Open localhost in browser",
"contexts": [
"workspace"
],
"command": [
"bun",
"run",
"src/actions/open-localhost.ts"
]
},
{
"id": "status",
"title": "Browser status",
"contexts": [
"workspace"
],
"command": [
"bun",
"run",
"src/actions/status.ts"
]
}
],
"panes": [
{
"id": "browser",
"title": "Browser",
"placement": "split",
"command": [
"bun",
"run",
"src/viewer.ts"
]
}
],
"link_handlers": [
{
"id": "localhost",
"title": "Open in Herdr Browser",
"pattern": "^https?://(localhost|127\\.0\\.0\\.1|\\[::1\\])(:[0-9]+)?([/?#].*)?$",
"action": "open-localhost"
}
],
"source": {
"kind": "github",
"owner": "ogulcancelik",
"repo": "herdr-browser",
"resolved_commit": "be6888b71cf4eb5939ee79a746bd1a1c22ade046",
"managed_path": "/home/prad/.config/herdr/plugins/github/official.browser-ff2a44eccae9",
"installed_unix_ms": 1786302769417
}
},
{
"plugin_id": "vim-herdr-navigation",
"name": "Vim Herdr Navigation",
"version": "0.1.0",
"min_herdr_version": "0.7.0",
"description": "Seamless Ctrl+h/j/k/l navigation across herdr panes and Vim/Neovim splits",
"manifest_path": "/home/prad/.herdr/vim-herdr-navigation/herdr-plugin.toml",
"plugin_root": "/home/prad/.herdr/vim-herdr-navigation",
"enabled": true,
"platforms": [
"linux",
"macos"
],
"actions": [
{
"id": "down",
"title": "Navigate down (Vim/herdr)",
"contexts": [
"global"
],
"command": [
"bash",
"navigate.sh",
"down"
]
},
{
"id": "left",
"title": "Navigate left (Vim/herdr)",
"contexts": [
"global"
],
"command": [
"bash",
"navigate.sh",
"left"
]
},
{
"id": "right",
"title": "Navigate right (Vim/herdr)",
"contexts": [
"global"
],
"command": [
"bash",
"navigate.sh",
"right"
]
},
{
"id": "up",
"title": "Navigate up (Vim/herdr)",
"contexts": [
"global"
],
"command": [
"bash",
"navigate.sh",
"up"
]
}
],
"source": {
"kind": "local"
}
}
]
Whitespace-only changes.
Whitespace-only changes.
+5
View File
@@ -0,0 +1,5 @@
{
"version": "0.8.0",
"body": "### Added\n- Added `herdr --skill` to print the agent skill bundled with the running Herdr binary.\n- Added `ui.pane_scrollbars = false` to hide terminal pane scrollbars and reclaim their reserved column. (#2167)\n- Added `ui.tab_bar_position = \"bottom\"` to place the desktop tab row below terminal panes. (#2117)\n- Added live filtering to the keybind help with `/`, Backspace, and `Ctrl+U`. (#1825, #1832, thanks @corrius)\n- Added Windows support for `experimental.switch_ascii_input_source_in_prefix` with Korean IMEs. (#1802, #1823, thanks @joonhwan)\n- Added Grok CLI session reporting and native restore with `grok --resume <id>`. (#1800, #1807, thanks @carlesso)\n- Added Antigravity CLI session reporting and native restore with `agy --conversation <id>`. (#1011, #1571, #2087, thanks @ludoo)\n- Added automatic text history reads for idle alternate-screen agents, with the application viewport restored after collection.\n- Added `workspace.move_block`, the `workspace.reordered` event, and atomic worktree-group reordering. (#1694)\n- Added a Simplified Chinese README. (#1990, thanks @patrick-xin)\n\n### Changed\n- Experimental options are no longer exposed in the Settings TUI and remain available through the config file.\n- Agent status indicators now use the same static workspace marks across the sidebar, navigator, and mobile views, eliminating continuous spinner rendering while agents work.\n- Hidden pane output no longer triggers unnecessary TUI rendering.\n- Windows preview downloads now include Herdr and a modern app-local ConPTY runtime in one archive. (#1533, #1644, #1828)\n- Worktree parents and children now stay packed together in the sidebar, including while groups are reordered.\n- Public documentation now separates stable, preview, and immutable versioned release snapshots.\n- Repository and installation links now use `herdrdev/herdr` after the GitHub organization migration.\n- Relicensed Herdr from AGPL-3.0-or-later to Apache-2.0.\n\n### Fixed\n- Pane applications now receive semantic light/dark query responses and live Mode 2031 updates when the host appearance changes. (#714)\n- Remote attach now falls back to `sh` when the login shell cannot perform path discovery. (#1201)\n- PTY output continues to be read while pane input is temporarily blocked. (#1295)\n- Worktree CLI help and docs no longer advertise the redundant `--json` flag; worktree commands remain JSON-only and continue accepting the flag for compatibility. (#2171)\n- OpenCode 2 preview panes now appear as OpenCode agents and use the existing OpenCode status detection. (#2169)\n- Pane text copied through VS Code Remote Tunnels now reaches the viewing machine's clipboard instead of overwriting the remote host clipboard. (#2015)\n- Windows agent detection now follows Git Bash-launched agents across emulated `exec` process boundaries. (#2107)\n- Detached Windows servers and pane processes now survive logout from the OpenSSH session that started them. (#2008)\n- Windows `agent start` now launches agents without native arguments instead of timing out on an invalid empty PowerShell argument list. (#2072)\n- Headless servers now resume restored agent sessions without waiting for a TUI client to attach. (#2064)\n- Vibe and other Kitty-keyboard pane applications now receive shifted letters and punctuation when they request associated text. (#2020)\n- Kitty-keyboard pane applications now receive printable key releases without duplicate text input. (#1746)\n- Kitty graphics remain visible during host repaints. (#1628)\n- Pane applications now receive correct XTWINOPS terminal and cell-size query responses. (#835)\n- WSL clients query the host cell size when the terminal ioctl reports no pixels, keeping graphics sharp instead of using the 8x16 fallback. (#2146, #2160, thanks @WakaTaira)\n- Linux runtimes without terminal foreground process groups can opt into child-group agent detection with `HERDR_PROCESS_DETECTION=child-groups`. (#1982)\n- Installing the Herdr agent skill with the `skills` CLI no longer copies the entire repository. (#2022)\n- Nix builds now include the bundled agent skill required by `herdr --skill`. (#1889, #1890, thanks @olafkfreund)\n- Agent prompts now wait briefly after sending text before pressing Enter, preventing prompts from remaining in agent composers without starting a turn. (#1878)\n- Empty clipboard writes from pane applications no longer erase existing clipboard contents or show a copied confirmation. (#1893)\n- Plain mouse movement no longer triggers continuous full renders while preserving Herdr menu hover and pane application mouse tracking. (#1865)\n- Extended-button drags now preserve Herdr hover state while applications receive the drag.\n- `ui.copy_on_select = false` now retains drag and double-click word selections without copying; `Ctrl+C`, or `Cmd+C` when the host terminal forwards it, copies and clears the selection. (#1782)\n- Pane and agent read responses now report `truncated: true` wLine truncated
"show_on_startup": false
}
+144
View File
@@ -0,0 +1,144 @@
{
"version": 3,
"workspaces": [
{
"id": "wP",
"custom_name": null,
"identity_cwd": "/home/prad/Developer/github.com/prdlk/clipmark",
"public_pane_numbers": {
"7": 5,
"3": 1
},
"next_public_pane_number": 6,
"public_tab_numbers": [
1,
3
],
"next_public_tab_number": 4,
"tabs": [
{
"custom_name": "omp",
"layout": {
"Pane": 3
},
"panes": {
"3": {
"cwd": "/home/prad/Developer/github.com/prdlk/clipmark",
"agent_session": {
"source": "herdr:omp",
"agent": "omp",
"kind": "path",
"value": "/home/prad/.omp/agent/sessions/-Developer-github.com-prdlk-clipmark/2026-08-10T20-42-28-503Z_019fed69-9917-7000-b3c6-b4fedc829e55.jsonl"
}
}
},
"zoomed": false,
"focused": 3,
"root_pane": 3
},
{
"custom_name": null,
"layout": {
"Pane": 7
},
"panes": {
"7": {
"cwd": "/home/prad/Developer/github.com/prdlk/clipmark"
}
},
"zoomed": false,
"focused": 7,
"root_pane": 7
}
],
"active_tab": 0
},
{
"id": "wQ",
"custom_name": null,
"identity_cwd": "/home/prad/Developer/prad.codes/go/crypto",
"public_pane_numbers": {
"5": 1
},
"next_public_pane_number": 2,
"public_tab_numbers": [
1
],
"next_public_tab_number": 2,
"tabs": [
{
"custom_name": null,
"layout": {
"Pane": 5
},
"panes": {
"5": {
"cwd": "/home/prad/Developer/prad.codes/go/crypto"
}
},
"zoomed": false,
"focused": 5,
"root_pane": 5
}
],
"active_tab": 0
},
{
"id": "wS",
"custom_name": null,
"identity_cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design",
"public_pane_numbers": {
"9": 2,
"8": 1
},
"next_public_pane_number": 3,
"public_tab_numbers": [
1,
2
],
"next_public_tab_number": 3,
"tabs": [
{
"custom_name": "omp",
"layout": {
"Pane": 8
},
"panes": {
"8": {
"cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design",
"agent_session": {
"source": "herdr:omp",
"agent": "omp",
"kind": "path",
"value": "/home/prad/.omp/agent/sessions/-Developer-github.com-prdlk-tldraw-system-design/2026-08-11T19-09-58-310Z_019ff23b-44a6-7000-96ce-9aab86e8d0c9.jsonl"
}
}
},
"zoomed": false,
"focused": 8,
"root_pane": 8
},
{
"custom_name": null,
"layout": {
"Pane": 9
},
"panes": {
"9": {
"cwd": "/home/prad/Developer/github.com/prdlk/tldraw-system-design"
}
},
"zoomed": false,
"focused": 9,
"root_pane": 9
}
],
"active_tab": 0
}
],
"active": 2,
"selected": 2,
"sidebar_width": 24,
"sidebar_section_split": 0.4939759,
"collapsed_space_keys": []
}
+14
View File
@@ -124,3 +124,17 @@ desc = "Jump to a directory via television"
on = "<C-f>"
run = "plugin tv text"
desc = "Open files using neovim and jump to where the string is located"
# Open in the host nvim as splits (only inside an nvim terminal; no-ops in
# standalone yazi — see ~/.local/bin/yazi-nvim-open). Replaces yazi.nvim's
# <c-v>/<c-x> buffer-local maps.
[[mgr.prepend_keymap]]
on = "<C-v>"
run = 'shell -- yazi-nvim-open vsplit %s'
desc = "Open in nvim vertical split"
[[mgr.prepend_keymap]]
on = "<C-x>"
run = 'shell -- yazi-nvim-open split %s'
desc = "Open in nvim horizontal split"
+4 -1
View File
@@ -6,7 +6,10 @@ play = [
{ run = "mpv %s", orphan = true, for = "unix" },
]
edit = [
{ run = "nvim %s", block = true, for = "unix" },
# routes into the host nvim when run inside its terminal ($NVIM set);
# plain blocking nvim otherwise. Lives in ~/.local/bin (yazi doesn't
# expand $HOME here). %s = selected/hovered paths (yazi interpolation).
{ run = 'yazi-nvim-open %s', block = true, for = "unix" },
]
open = [
{ run = "{{ if eq .chezmoi.os "darwin" }}open{{ else }}xdg-open{{ end }} %s1", desc = "Open" },