This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
make- Install configuration files by creating symbolic links from dotfiles to home directorybash bootstrap.sh- Install packages and dependencies for the development environmentsh transfer.sh- Transfer configuration (see README for details)
This repository doesn't have traditional build/test commands as it's a dotfiles configuration repository. However, for development workflow:
make <target>- Install specific configuration sets (e.g.,make zsh,make nvim,make git)bash bootstrap.sh- Reinstall all dependencies with version checking
This is a comprehensive dotfiles repository that manages development environment configuration across multiple platforms (macOS and Linux). The architecture is organized by tool/application:
- Makefile: Central configuration manager that creates symbolic links from dotfiles to proper locations
- bootstrap.sh: Dependency installer with version management for development tools
- Platform-specific configs: Separate directories for different tools and environments
- zsh/: ZSH shell configuration with history, autosuggestions, and syntax highlighting
- bash/: Bash configuration files (bashrc, bashprofile, bashenv)
- sh/: Shared shell utilities (aliases, profile, starship prompt, atuin history)
- nvim/: Neovim configuration with Lua-based setup and plugin management
- vim/: Vim configuration and session management
- git/: Git configuration (gitconfig, gitignore, gitattributes)
- kitty/: Kitty terminal emulator configuration
- alacritty/: Alacritty terminal configuration
- tmux/: Terminal multiplexer configuration (rc/tmux.conf)
- yabai/: macOS tiling window manager with skhd hotkeys and borders
- polybar/: Linux status bar configuration
- bspwm/: Linux window manager configuration
- ruby/: Ruby development environment (irbrc, pryrc, gemrc, rspec)
- python/: Python code style configuration
- go/: Go environment configuration
The bootstrap.sh script implements sophisticated version management:
- Supports multiple package managers (brew, yay, pacman, dnf, apt-get)
- Fallback to source/release installation for specific versions
- Cargo-based Rust tool installation
- Custom installation functions for language servers and development tools
- macOS: Uses yabai for window management, homebrew for packages
- Linux: Supports Arch (yay/pacman), Ubuntu (apt-get), CentOS (dnf) with bspwm/polybar
- Configurations are linked, not copied, allowing easy version control
- Bootstrap script checks versions before installing to avoid unnecessary updates
- Modular Makefile targets allow installing specific tool configurations independently
- Don't mention claude when writing git commit messages and use the commitzen format with the appropriate line lengths