# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Overview Dotfiles repo managing configs for WezTerm, Neovim, and Zsh (oh-my-zsh + p10k) with symlinks. Cross-platform: EndeavourOS (primary desktop) and Windows. ## Structure ``` dotfiles/ ├── zsh/ │ ├── .zshrc # Zsh config (oh-my-zsh, p10k, aliases, plugins) │ ├── .p10k.zsh # Powerlevel10k prompt config │ └── custom/themes/ # Custom bira-nerd themes ├── wezterm/ │ └── wezterm.lua # WezTerm config (CovenantUI color scheme, JetBrainsMono Nerd Font) ├── nvim/ # Neovim config (lazy.nvim, IDE-like setup) │ ├── init.lua │ └── lua/ │ ├── options.lua │ ├── keymaps.lua │ └── plugins/ │ ├── colorscheme.lua # catppuccin mocha │ ├── ui.lua # lualine, bufferline, indent-blankline │ ├── explorer.lua # neo-tree (e) │ ├── telescope.lua # fuzzy finder (ff/fg/fb/fr) │ ├── treesitter.lua # syntax highlighting │ ├── lsp.lua # mason + lspconfig + nvim-cmp (bash, python, C#) │ └── editor.lua # autopairs, which-key, gitsigns ├── bootstrap.sh # Linux setup script └── bootstrap.ps1 # Windows setup script (requires admin) ``` ## Bootstrap / Setup ```bash # Linux — installs oh-my-zsh, powerlevel10k, zsh plugins, then symlinks everything bash bootstrap.sh # Windows (PowerShell, run as Administrator) .\bootstrap.ps1 ``` On Linux, symlinks are created: - `~/.zshrc` → `zsh/.zshrc` - `~/.p10k.zsh` → `zsh/.p10k.zsh` - `~/.oh-my-zsh/custom/themes/*.zsh-theme` → `zsh/custom/themes/` - `~/.wezterm.lua` → `wezterm/wezterm.lua` - `~/.config/nvim` → `nvim/` Neovim plugins install automatically on first `nvim` launch (lazy.nvim bootstraps itself). ## Key Conventions - **No dotfile managers** — symlinks only, managed by bootstrap scripts. - **OS detection in configs**, not in bootstrap: - WezTerm: `wezterm.target_triple` - Neovim: `vim.loop.os_uname()` - **System clipboard by default** — `y`/`p` in Neovim use the OS clipboard (`unnamedplus`). - **Space as leader key** in Neovim. ## Neovim Key Mappings | Key | Action | |-----|--------| | `e` | Toggle file tree | | `o` | Reveal current file in tree | | `ff` | Find files | | `fg` | Search text in project | | `fb` | Switch open buffers | | `fr` | Recent files | | `` / `` | Next / prev buffer | | `x` | Close buffer | | `K` | Hover LSP docs | | `gd` | Go to definition | | `rn` | Rename symbol | | `ca` | Code actions | | `d` | Line diagnostics | | `jk` | Exit insert mode | ## Zsh Plugins (installed by bootstrap.sh) - `zsh-autosuggestions` - `zsh-syntax-highlighting` - `zsh-completions` - `fast-syntax-highlighting`