Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Configs for Neovim, Herdr, Ghostty, and portable Agent Skills.

nvim/     -> ~/.config/nvim          (symlinked directory)
ghostty/  -> ~/.config/ghostty       (symlinked directory)
herdr/    -> ~/.config/herdr/config.toml only
.agents/skills/
  create-worktree-env/  personal worktree + env-linking skill
  herdr/                Herdr v0.8.0 control skill
           -> ~/.agents/skills/<name>
           -> ~/.config/agents/skills/<name>
           -> ${CLAUDE_CONFIG_DIR:-~/.claude}/skills/<name>
           -> ${CODEX_HOME:-~/.codex}/skills/<name>
           -> ~/.config/opencode/skills/<name>

Setup

git clone https://github.com/chtushar/dotfiles ~/dotfiles
~/dotfiles/install.sh

install.sh is idempotent — re-running it leaves correct symlinks in place and backs up anything it would otherwise overwrite as <name>.backup.<timestamp>.

Only config.toml is symlinked for Herdr: the rest of ~/.config/herdr is runtime state (sockets, logs, session.json, installed plugin checkouts) that does not belong in version control.

Skills use the open Agent Skills SKILL.md format and live under the neutral .agents/skills convention. They are linked individually, so built-in and separately installed skills remain untouched. To expose them globally to every client supported by the Skills CLI, run:

npx skills add ~/dotfiles --global --all

Dependencies

What Why Install
fzf fzf-lua file/buffer search brew install fzf
Herdr ≥ 0.7.0 terminal multiplexer; plugin actions brew install herdr
herdr-splits (Herdr plugin) Herdr side of the split navigation herdr plugin install lmilojevicc/herdr-splits.nvim
herdr-nvim (Herdr plugin) Persistent Neovim sidebar, touched-file picker, and annotations herdr plugin install ChmaraX/herdr-nvim

Neovim plugins bootstrap themselves — lazy.nvim installs itself on first launch and pins versions from nvim/lazy-lock.json.

After changing herdr/config.toml, apply it with herdr server reload-config.

Keybindings

Leader is <Space>, local leader is \.

Navigation and windows

Key Action
<C-p> Find files
<C-q> Find buffers
<C-h/j/k/l> Move between windows — and Herdr panes, inside a Herdr session
<M-h/j/k/l> Resize window or Herdr pane
<C-,> / <C-.> Shrink / grow split width by 1 column
<leader>e Toggle file tree
prefix+e Toggle the persistent Neovim sidebar in Herdr
prefix+o Pick a file recently touched by the active agent

Git

Key Action
<leader>gt Changed files (git status tree)
<leader>gd Preview hunk diff
<leader>gb Full blame for current line

Inside the git status tree: ga stage file, gu unstage file, A stage all.

Coding agents

Key Action
<leader>ac Toggle Claude Code
<leader>ax Toggle Codex
<leader>ao Toggle OpenCode
<leader>as Send visual selection to active agent
<leader>rc Annotate the current line or visual selection
<leader>rl List pending annotations
<leader>rs Paste annotations into an agent input
<leader>rS Send annotations to an agent
<Esc><Esc> Exit terminal mode (single <Esc> passes through to the agent)

Notes

Split navigation and resizing are unified across Neovim and Herdr by herdr-splits.nvim. The Neovim plugin is gated on HERDR_ENV == "1", so outside a Herdr session <C-h/j/k/l> fall back to plain Neovim window moves.

Ghostty sets macos-option-as-alt = true so <M-hjkl> reaches Herdr and Neovim. The tradeoff is that Option no longer types composed characters (ø, å, ...).

nvim/decisions.log records why things are the way they are — read it before changing something that looks arbitrary.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages