Personal configuration files and setup scripts for my development environment.
- macOS (tested on macOS Sonoma 14.0+)
- Git
- Terminal access
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- installgit clone git@github.com:vessux/dotfiles.git ~/dotfilessudo nix run nix-darwin -- switch --flake ~/dotfiles/nixcd ~/dotfiles
stow .Tmux requires a few extra steps for full plugin and shell integration:
cd ~/dotfiles/tmux
./install.shThis will:
- Install TPM (Tmux Plugin Manager)
- Install all plugins
- Create a starter session
- Validate everything
Umbel composes Claude Code
sessions from named bundles of skills, hooks, and MCP servers. The bundle
config (~/.config/umbel/) is stowed from this repo; the binary and PATH
shim are set up once per machine:
npm i -g @vessux/umbel # the `umbel` binary
umbel shim install # writes ~/.local/share/umbel/bin/claudeThe PATH entry for the shim is already wired in zsh/.zshrc, so plain
claude resolves through Umbel and picks up a project's bundle.
Bundles live in ~/.config/umbel/bundles/*.md. Some declare external binary
prerequisites (e.g. plannotator, tuidriver) — each bundle's .md
documents its own install step.
- Neovim - Text editor configuration
- Tmux - Terminal multiplexer with custom theme and plugins
- Git - Version control configuration and global gitignore
- Starship - Cross-platform shell prompt with custom styling
- Atuin - Shell history sync and search
- Bat - Enhanced cat with syntax highlighting and themes
- Yazi - Terminal file manager with plugins and catppuccin theme
- Zsh - Shell configuration with custom setup
- Umbel - Claude Code bundle config: skills, hooks, and MCP servers (see Umbel Setup)
- Ghostty - Terminal emulator configuration
- Karabiner Elements - Keyboard customization for macOS
- LinearMouse - Mouse acceleration and scrolling customization
- Lazygit - Terminal-based Git interface
- Lazydocker - Terminal-based Docker interface
- qBittorrent - BitTorrent client configuration
- Raycast - Spotlight replacement
- IdeaVimRC - Vim configuration for JetBrains IDEs
- Nix Darwin - Declarative macOS system configuration
- Package management (Nix packages + Homebrew casks)
- System defaults and preferences
- Symbolic hotkey configurations
- Font installation (JetBrains Mono Nerd Font, Hack Nerd Font)
- macOS security settings (Touch ID for sudo)
All configurations are symlinked to ~/.config/ via Stow:
~/.config/
├── atuin/ # Shell history configuration
├── bat/ # Syntax highlighter configuration
├── ghostty/ # Terminal emulator configuration
├── git/ # Git configuration and global gitignore
├── karabiner/ # Keyboard customization
├── lazydocker/ # Docker TUI configuration
├── lazygit/ # Git TUI configuration
├── linearmouse/ # Mouse configuration
├── qBittorrent/ # BitTorrent client configuration
├── starship/ # Shell prompt configuration
├── tmux/ # Terminal multiplexer configuration
├── umbel/ # Claude Code bundles (skills, hooks, MCP servers)
├── yazi/ # File manager configuration
├── zsh/ # Shell configuration
└── ideavimrc/ # Vim configuration for IDEs
Feel free to fork this repository and customize the configurations to suit your needs. The Nix configuration allows for declarative system management, making it easy to reproduce the setup on new machines.
This project is open source and available under the MIT License.