This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Personal dotfiles for macOS, WSL/Ubuntu, and Omarchy (Arch Linux). Uses shell scripts and symlinks to manage configurations across platforms.
# macOS
./setup_macos.sh
# WSL/Ubuntu
./setup_wsl_ubuntu.sh
# Omarchy/Arch Linux
./setup_omarchy.shThe setup scripts are interactive and will prompt for Git configuration details (name, emails, SSH key from 1Password).
Entry Points: Platform-specific setup scripts at root level (setup_*.sh) that source shared scripts.
Shared Scripts (scripts/):
base_setup.sh- Universal tools (uv, AWS CLI, fzf)base_linux_setup.sh- Linux-specific tools (aws-vault, Just, AppPack)setup_git.sh- Interactive Git configuration with 1Password SSH integrationsetup_zsh.sh- Oh My Zsh, zoxide, zsh config symlinkssetup_zsh_theme.sh- Powerlevel10k themesetup_brew.sh- Homebrew packages (macOS only)setup_macos_settings.sh- macOS system preferences
Configuration Files (config/):
zsh/- Shell configuration (.zshrc, .p10k.zsh) - symlinked via $ZDOTDIRgit/- Git config with base + local/work overrides using include directivesaliases/- Shell aliases sourced by .zshrc/.bashrchypr/- Hyprland window manager overrides (input, bindings, workspaces)omarchy/- Omarchy theme files and bashrc additionsghostty/- Ghostty terminal configurationwaybar/- Status bar config including multi-monitor supportpipewire/- Audio configuration
Symlink-based: Configs are symlinked from ~/.dotfiles/config/ to ~/.config/, not copied.
Conditional appending: Scripts check with grep -qFx before appending to existing configs (like ~/.config/hypr/hyprland.conf).
Git configuration: Uses 1Password for SSH keys and commit signing. Work vs personal configs are separated via Git's includeIf directive based on directory paths.
Multi-monitor detection: Omarchy setup detects monitor count via hyprctl monitors -j and applies appropriate workspace/waybar configs.
Omarchy setup adds source directives to the main Hyprland config (~/.config/hypr/hyprland.conf) rather than replacing it. Custom configs in config/hypr/ are included via source = ~/.dotfiles/config/hypr/... lines.
See docs/omarchy.md for manual post-setup steps (monitor configuration, PyCharm setup, Zen Browser settings).