Skip to content

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Personal configuration files managed with GNU Stow, organized by platform.

Layout

dotfiles/
├── shared/    # cross-platform packages, linked on every machine
│   ├── claude/      # Claude Code user-level CLAUDE.md + project template
│   ├── helix/       # Helix editor (omarchy theme, tmux yazi picker)
│   ├── yazi/        # Yazi file manager
│   └── git-gtr/     # git-worktree-runner (via submodule, see its README)
├── omarchy/   # Arch/omarchy machine (captured from a live omarchy install)
│   ├── bash/        # omarchy-style .bashrc + yy() yazi wrapper + gtr completions
│   ├── tmux/        # C-Space prefix, M-Enter splits (pairs with ghostty CSI-u keybinds)
│   ├── ghostty/     # omarchy dynamic theme include + CSI-u keybinds
│   └── starship/    # minimal cyan prompt
├── macos/     # macOS laptop packages
│   ├── zsh/         # zshrc + zprofile (homebrew, Android SDK)
│   └── nushell/     # nushell in Library/Application Support layout
├── archive/   # retired configs kept for reference, never linked
│   ├── bash-debian/ # old Debian desktop bashrc
│   ├── ghostty/ starship/ nushell/ zellij/ rust/ env_setup_scripts/
└── .git-worktree-runner/  # git submodule (used by shared/git-gtr)

Each package directory mirrors the structure expected relative to $HOME, e.g. omarchy/bash/.bashrc~/.bashrc.

Setup on a new machine

git clone <repo-url> ~/Projects/dotfiles
cd ~/Projects/dotfiles
git submodule update --init --recursive

Install stow:

omarchy pkg add stow      # omarchy
brew install stow         # macOS

Stow will refuse to overwrite existing real files — move them aside first (e.g. mv ~/.bashrc ~/.bashrc.prestow), then link:

# omarchy machine
stow -d shared  -t ~ claude helix yazi git-gtr
stow -d omarchy -t ~ bash tmux ghostty starship

# macOS machine
stow -d shared -t ~ claude helix yazi git-gtr
stow -d macos  -t ~ zsh nushell

Day-to-day

stow -d omarchy -t ~ -R bash   # refresh links after adding new files to a package
stow -d omarchy -t ~ -D bash   # remove a package's links
stow -n -v -d shared -t ~ helix  # dry-run to preview

Notes

  • After omarchy update, run git status here. Omarchy migrations sometimes rewrite files in ~/.config/ — through a symlink that shows up as a diff in this repo (good: review and commit it); a migration that replaces a file wholesale will silently swap the symlink for a real file (bad: restow the package).
  • If packages ever move within this repo, unstow (stow -D) with the old layout before pulling, then restow from the new locations. If you pulled first, clean up dangling links with find ~ -maxdepth 3 -xtype l -delete and restow.
  • The helix C-y yazi picker only works when helix runs inside tmux; in a bare terminal use helix's built-in space f picker.
  • shared/claude links only ~/.claude/CLAUDE.md into the live ~/.claude/ directory — never symlink the whole directory; it contains runtime state.

About

my personal dotfiles

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages