Skip to content
equeroPublic

About

Personal dotfiles: Claude Code, Neovim (kickstart), bash, git, kitty and mise. Catppuccin Mocha everywhere, browsable as a static site.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

36 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

License: GPL v3 Deployed on Vercel Version

Personal configuration files + tooling, synced across machines via Git and browsable as a static Astro site.

Live Demo

About This Project

This repo collects the dotfiles, scripts, and editor configs I carry between machines — plus a small Astro site that renders the tree so anyone can browse it from the web without cloning. Everything inside files/ is symlinked into $HOME by files/install.sh; the web/ folder builds the static site that ships to dotfiles.equero.dev.

What's Inside

Config Target Highlights
Claude Code ~/.claude/ Global rules, model-routed subagents, /audit and /ssh commands, Catppuccin status line with context and plan usage
Neovim ~/.config/nvim kickstart.nvim on Neovim 0.12's built-in vim.pack, plugin versions pinned in a lock file, web-dev LSPs, file tree, session restore
Bash ~/.bashrc mise activation, dev helper for the distrobox container, Catppuccin prompt
Git ~/.gitconfig Identity, main as default branch
kitty ~/.config/kitty/kitty.conf Catppuccin Mocha, JetBrainsMono Nerd Font, splits and tabs keymaps
mise ~/.config/mise/config.toml Node LTS

Everything is themed with Catppuccin Mocha. The main machine is a Steam Deck (SteamOS + an Arch distrobox called dev), but nothing depends on it.

Tech Stack (website)

  • Astro — static site generator for the browsable view
  • TypeScript — type-safe tree walker and renderers
  • Tailwind CSS — utility-first styling
  • Shiki — syntax highlighting for code previews
  • Biome — lint + format
  • Vercel — deploy + hosting

Project Structure

.
├── files/                    ← actual dotfiles content (symlinked to $HOME)
│   ├── .claude/              ← Claude Code settings, statusline, commands, agents
│   │   ├── keybindings.json  ← custom key bindings (vim editor mode)
│   │   ├── commands/         ← user-invocable /commands
│   │   └── agents/           ← orchestrator subagents (model-routed)
│   ├── nvim/                 ← Neovim configuration (kickstart.nvim based)
│   ├── bash/bashrc           ← ~/.bashrc (mise, `dev` distrobox helper, prompt)
│   ├── git/gitconfig         ← ~/.gitconfig (identity, default branch)
│   ├── kitty/kitty.conf      ← kitty terminal (Catppuccin Mocha, splits)
│   ├── mise/config.toml      ← mise tool versions (node LTS)
│   └── install.sh            ← symlink installer
│
├── web/                      ← Astro app that renders files/ as a static site
│   ├── src/
│   ├── public/
│   ├── astro.config.mjs
│   └── package.json
│
└── package.json              ← root (version + web scripts)

Dotfiles Installation

git clone git@github.com:equero/dotfiles.git ~/dotfiles
bash ~/dotfiles/files/install.sh

The script creates symlinks from $HOME into files/, so edits stay in sync with Git. It's safe to run again: an existing real file is renamed to .bak before it's replaced, and existing symlinks are just updated.

Requirements: git, node (for the Claude Code status line) and whatever each config is for (Neovim 0.12+, kitty, mise). The Neovim requirements are listed in files/nvim/README.md. On Windows (Git Bash) everything except kitty is linked.

Heads-up: your live configs point into this working copy. Checking out a branch or tag that lacks one of them breaks it until you switch back (for example, git loses your identity if files/git/gitconfig is missing). Keep the clone on develop or main.

Claude Code Subagents

files/.claude/agents/ ships an orchestrator + subagent setup so Claude Code routes work to the cheapest capable model instead of running everything on Opus.

Agent Model Use for
commit-fast haiku git diff → Conventional Commits message + commit
pr-describe haiku branch diff → PR title + body
quick-search haiku one-shot symbol/file lookups
test-writer sonnet write tests matching repo style
refactor-clean sonnet behavior-preserving refactors
architect sonnet everyday design / planning multi-file changes (~95% of cases)
senior-architect opus hard design problems — invoke with "senior architect" phrase
bug-investigator sonnet static root-cause analysis from a bug description / stack trace
js-console-debugger sonnet two-phase JS/TS debugging — instruments code, diagnoses logs
git-diff-commit-analyzer sonnet deep diff analysis → conventional commit message + split advice

Settings

files/.claude/settings.json pins the defaults carried across machines: model: opus, effortLevel: medium, editorMode: vim, fullscreen TUI, the status line, and the enabled plugins (official code-review, code-simplifier, frontend-design, github, playground, vercel, plus the third-party caveman marketplace). Machine-local permission grants live in settings.local.json, which is gitignored on purpose.

Status line

files/.claude/statusline.cjs is a dependency-free Node script (Windows, macOS and Linux) that renders one line in Catppuccin Mocha colors:

🤖 Opus | 📁 dotfiles | 🌿 develop +12 -3 | ████░░░░░░ 42% | ⏳ 5h 23% (2h05m) · 7d 41%

Model, folder, git branch (and worktree) with uncommitted line changes, context window usage, and plan usage for the 5-hour and 7-day limits (Pro/Max plans). The bars turn yellow at 60% and red at 80%. It needs a truecolor terminal.

Key bindings

files/.claude/keybindings.json holds the custom key bindings. Global rules (~/.claude/CLAUDE.md) are personal and kept out of this repo.

The main agent acts as the router — it reads each subagent's description and delegates. Edit any .md file in files/.claude/agents/ to tune routing or swap models (model: haiku | sonnet | opus | inherit).

Web (Development)

npm run install:web      # installs web/ dependencies
npm run dev              # local dev at http://localhost:4321
npm run build            # static build into web/dist/
npm run preview

The Astro app walks files/ at build time, respects per-folder .dotignore entries, and renders any README.md it finds. The Vercel project's Root Directory is set to web/.

Git Flow

The repo follows a develop → main flow. Releases are done with synkro:

synkro status            # what the next release would contain
synkro sync --patch      # merge develop into main, bump patch, tag, push (the usual)
synkro sync              # same, minor bump (--major for major)
synkro sync --dry-run    # show what would happen, change nothing

Each release is a single merge commit on main that also carries the new version, tagged vX.Y.Z with a changelog. develop is fast-forwarded to it afterwards.

Contributing

This is a personal repo, but it's open source under the GPL-3.0 license — feel free to fork it as a starting point for your own dotfiles.

Guidelines

  • Follow the existing code style (enforced by Biome inside web/).
  • Use Conventional Commits (feat:, fix:, docs:, chore:, …).
  • Branch off develop; never commit directly to main.
  • Update the relevant README.md inside files/<subdir>/ when you change something user-facing.

License

This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.

Author

Enrique Quero


If you find this repo useful, consider giving it a star on GitHub!

About

Personal dotfiles: Claude Code, Neovim (kickstart), bash, git, kitty and mise. Catppuccin Mocha everywhere, browsable as a static site.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages