dots/CLAUDE.md
Shawn Borton 5594248f21 Add CLAUDE.md and update Doom Emacs config
- Add CLAUDE.md for Claude Code guidance
- Update gptel config to use Claude Sonnet 4 with key from ~/.secrets/claude_key
- Update elfeed filters to exclude -wait tag
- Enable terraform module in init.el
- Update org agenda files for 2026
- Fix org-hugo link rendering for vanilla Markdown

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 13:43:50 -06:00

2.2 KiB

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 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:

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