dots/CLAUDE.md
2026-09-11 10:34:12 -05: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 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:

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