Skip to content

Latest commit

 

History

607 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zendots logo

zendots

Zen dotfiles — a modern, minimal, keyboard-centric terminal environment

A chezmoi-managed dotfiles repository covering Neovim, Zsh, Tmux, a fleet of AI coding agents, and the CLI tools that hold it all together. Templated for both macOS (AeroSpace + SketchyBar) and Linux (niri / Hyprland + Waybar), with Catppuccin Mocha theming throughout.

Be sure to ⭐️ or 🔱 this repo if you find it useful! 😃

The Stack

Core

Dotfile manager chezmoi
Shell Zsh + Zinit, carapace completions
Prompt Oh-My-Posh (with a custom transient prompt)
Terminal Ghostty, Kitty, Warp
Editor Neovim + lazy.nvim
Multiplexer Tmux + TPM, sesh, tmuxp
File manager Yazi
Git UI Lazygit + delta
Theme Catppuccin Mocha, everywhere

AI Agents

The agent setup is the part that moves fastest. All of these are configured here:

Orca Worktree-based agentic IDE — the primary driver (docs)
Claude Code ~/.claude settings, plugins, statusline, MCP servers
Codex ~/.codex config, plus CodexBar in the menu bar
OpenCode ~/.config/opencode
T3 Code Minimal desktop GUI for driving coding agents
Pi ~/.pi agent config — see docs/pi-workflow.md
aichat Inline shell command generation (Alt-e)
Neovim sidekick.nvim, avante.nvim, Copilot

Skills are vendored once in dot_agents/skills/~/.agents/skills/, so chezmoi apply reproduces every skill on a new machine with no network access. See Agent skills below.

CLI Toolbelt

Navigate zoxide · eza · fd
Search ripgrep · ast-grep · fzf · television
Read bat · glow · rich-cli · tealdeer
Inspect btop · procs · dua-cli · fastfetch
Data jq · yq · jc
Git gh · git-delta · git-cliff · git-extras
Shell atuin · carapace · direnv · vivid
Run just · entr · lazydocker · OrbStack
Languages uv · pixi · pipx · Node · Go · Rust · Lua
Misc ouch · age · aria2 · ffmpeg

Full list: pkgs/Brewfile.

Desktop

Installation

Prerequisites

Install Homebrew, then chezmoi:

brew install chezmoi

Quick Start

# 1. Initialize, preview, apply
chezmoi init git@github.com:dileep-kishore/zendots.git
chezmoi diff
chezmoi apply

# 2. Install packages
cd ~/.local/share/chezmoi/pkgs
brew bundle install        # Homebrew formulae, casks, fonts
./pipx_packages.sh         # Python CLI tools
./download_yazi_plugins.sh # Yazi plugins
./misc_setup.sh            # bat cache, TPM clone

Linux hosts use the platform scripts under pkgs/arch/ and pkgs/fedora/ instead of the Brewfile.

Then start tmux and press Ctrl-a + Shift-i to install the tmux plugins.

Fonts install from the Brewfile (Monaspace, Maple Mono NF, SF Mono/Pro, and several Nerd Fonts). Licensed fonts kept outside Homebrew — Dank Mono, MonaLisa, Cartograph, IA Writer — install manually with font-install.sh.

Usage

Chezmoi Workflow

This repository is the source. Edit files here, never in ~/.config.

chezmoi edit ~/.zshrc              # Edit (handles the dot_ prefix for you)
chezmoi diff ~/.zshrc              # Preview
chezmoi apply ~/.zshrc             # Apply — always scope to the paths you changed
chezmoi edit --apply ~/.config/nvim/init.lua

Just Recipes

just apply          # chezmoi apply
just diff           # chezmoi diff
just install        # brew bundle install
just dump           # regenerate the Brewfile from installed packages
just skills add …   # install an agent skill
just link-skills    # relink ~/.agents/skills into Claude Code
just capture codex  # capture live config keys back into the managed fragment

Agent skills

~/.agents/skills/ is the single store for every harness. Always install through the wrapper so the result gets recorded in chezmoi:

agent-skills.sh add mattpocock/skills   # or: just skills add …
agent-skills.sh update
agent-skills.sh sync                    # after hand-authoring a skill

Only Claude Code needs symlinks (link-agent-skills.sh, run on every apply) — Codex and OpenCode resolve ~/.agents/skills natively. Install a given skill on one machine only; the source syncs over Syncthing.

Key Bindings

Tmux — prefix is Ctrl-a

prefix + h / v Split horizontally / vertically
prefix + o Session manager (sesh + tmuxp)
prefix + r Reload config
Ctrl-Shift-h / l Switch windows
Alt + arrows Resize panes

Sessions

  • ta <name\|path> — attach to a tmux/sesh session, or create a standard one for a directory
  • tnew <name> [dir] — register in ~/.config/sesh/sesh.toml, then create/attach

sesh.toml is machine-local and intentionally unmanaged.

Zsh

Ctrl-r atuin history search
Ctrl-t fuzzy file finder
Alt-e aichat command generation

Neovim — leader is Space

<leader>ff Find files
<leader>fg Find git files
<leader>sg Grep search
<leader>gl Lazygit

Full keymaps: private_dot_config/nvim/lua/keymaps/.

Extras

  • work-sync (tools/work-sync/) — manages Syncthing project folders across machines: .stignore generation, conflict scanning, and Orca worktree handoff.
  • chezmoi-sync-from-home.sh — pull drifted changes back from ~ into the repo.
  • cfg-capture.py — capture keys from a live tool config into its managed fragment.

Maintenance

brew update && brew upgrade   # packages
nvim +Lazy sync               # Neovim plugins
ya pkg upgrade                # Yazi plugins
agent-skills.sh update        # agent skills
# tmux plugins: prefix + U

Syncing the repo itself:

chezmoi cd && git pull && chezmoi apply

Troubleshooting

Changes not applying — make sure you edited the chezmoi source, not ~. chezmoi cd gets you there.

Tmux plugins not loadinggit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm, then prefix + I.

Neovim LSP not working:Mason, install the missing server.

Shell completions brokenrm ~/.zcompdump* && exec zsh.

Credits

chezmoi · Catppuccin · the Neovim plugin community · and a long tail of dotfiles repos across GitHub.

License

MIT. Use and modify as you wish.


Note: This is a personal dotfiles repository. Take it as inspiration rather than something to apply wholesale — you will want to adjust it to your own machines and preferences.

About

Zen dotfiles

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages