This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Personal dotfiles. Primary target is macOS; Omarchy (Arch + Hyprland) is
a secondary target for the cross-platform configs. Files are symlinked to
~/.config/ and ~/ during setup.
./setup-macos.sh # macOS: Homebrew, packages, symlinks
./linux/setup-linux.sh # Omarchy/Arch: pacman extras + safe symlinks only| Path | Purpose |
|---|---|
.zshrc |
Zsh config (macOS) with Oh My Zsh, Starship, aliases |
.config/nvim/ |
LazyVim-based Neovim configuration |
.config/ghostty/ |
Ghostty terminal config |
.config/aerospace/ |
AeroSpace tiling window manager (macOS) |
.claude/ |
Claude Code settings (symlinked to ~/.claude/) |
.mcp.json |
MCP server config |
setup-macos.sh |
macOS installer |
linux/ |
Omarchy/Arch installer + bashrc + extra packages |
- Based on LazyVim
- Plugins managed via lazy.nvim (
lua/config/lazy.lua) - Custom plugins go in
lua/plugins/*.lua - Current colorscheme: gruvbox
To add/modify plugins, edit files in .config/nvim/lua/plugins/. LazyVim conventions apply:
- Return a table of plugin specs
- Use
optsto configure plugins - Use
{ import = "lazyvim.plugins.extras.X" }for LazyVim extras
- Shell aliases use short forms (
vfor nvim,llfor detailed ls) - Git aliases prefer
fzffor interactive selection (gcob,gdb) - AeroSpace uses Alt as the main modifier key
- Symlinks are created from this repo to home directory locations
linux/setup-linux.sh(a) appends an idempotentsourceline to~/.bashrcforlinux/bashrc.local, and (b) symlinks.claude/+.mcp.json. It deliberately avoids overriding Omarchy's nvim, ghostty, and starship configs — the script prints opt-in commands at the end.~/.bashrcis intentionally not symlinked: Omarchy migrationssed -iit in place. Personal additions live inlinux/bashrc.local, which~/.bashrcsources at the bottom.linux/bashrc.localruns after Omarchy's bash defaults, so it shouldn't re-source them or add an interactive-shell guard.- Most Brewfile packages are already in Omarchy;
linux/packages.txtonly lists the gaps.