53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Repository Purpose
|
|
|
|
Personal dotfiles repository for Shawn Borton's development environment. Configs for Doom Emacs, Vim, Bash, and tmux — primarily targeting Linux (Arch Linux and NixOS systems: archie, peregrine) with some historical macOS artifacts.
|
|
|
|
## File Overview
|
|
|
|
| File | Purpose |
|
|
|------|---------|
|
|
| `config.el` | Primary Doom Emacs private config (keybindings, UI, packages config) |
|
|
| `init.el` | Doom Emacs module selection |
|
|
| `packages.el` | Additional Doom Emacs package declarations |
|
|
| `.vimrc` | Vim config with vim-plug plugin manager |
|
|
| `.bash_profile` | Shell aliases, prompt, NVM setup |
|
|
| `.tmux.conf` | tmux keybindings and status bar |
|
|
|
|
## Doom Emacs Workflow
|
|
|
|
After editing `config.el`, `init.el`, or `packages.el`:
|
|
|
|
```bash
|
|
doom sync # Sync packages and modules (required after packages.el changes)
|
|
doom reload # Reload config without restarting (for config.el/init.el changes)
|
|
```
|
|
|
|
## Key Conventions
|
|
|
|
**Doom Emacs:**
|
|
- Uses Evil mode with `jk` as the escape sequence
|
|
- Leader key bindings are defined in `config.el` under `map!` blocks
|
|
- Custom packages are declared in `packages.el` using `package!` with optional `:recipe` for git sources
|
|
- Modules are toggled in `init.el` with flags like `(python +lsp +pyright +tree-sitter)`
|
|
- Fonts: JetBrains Mono (14pt) for fixed-pitch, Overpass Nerd Font (18pt) for variable-pitch
|
|
- Theme: `doom-oceanic-next`
|
|
|
|
**Vim:**
|
|
- Plugin manager: vim-plug (auto-installs to `~/.vim/autoload/plug.vim` on first run)
|
|
- Run `:PlugInstall` after adding new plugins to `.vimrc`
|
|
|
|
**tmux:**
|
|
- Prefix is `C-a` (not the default `C-b`)
|
|
- Reload config with `C-a r`
|
|
|
|
## Notable Integrations in config.el
|
|
|
|
- **Elfeed** (RSS): Connects to a self-hosted Fever API at `rss.onionpatch.cloud`; feeds are tagged and filtered with custom keybindings under the leader key
|
|
- **Pocket**: Integrated with elfeed for article saving via `pocket-reader`
|
|
- **gptel / chatgpt-shell**: LLM/ChatGPT integration packages declared in `packages.el`
|
|
- **org-roam**: Unpinned in `packages.el` for a custom version; roam2 module enabled in `init.el`
|
|
- **Dired**: Custom `h`/`l` navigation keys; Thunar integration for GUI file manager
|