Skip to content

relativesanity/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

946 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Personal macOS dotfiles managed with GNU Stow.

Bootstrap

To bootstrap a new machine, run:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/relativesanity/dotfiles/refs/heads/main/bin/bootstrap.sh)"

This will:

  • Install Homebrew, Git, and Zsh
  • Clone this repository to ~/.dotfiles
  • Detect environment (home vs work) and install appropriate packages
  • Symlink all configurations using Stow

To test a specific branch:

DOTFILES_BRANCH=branch-name /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/relativesanity/dotfiles/refs/heads/branch-name/bin/bootstrap.sh)"

Post-Bootstrap Steps

Authentication

GitHub CLI

gh auth login

Hetzner Cloud CLI Edit ~/.config/hcloud/cli.toml and add your API token.

Optional Configurations

Git Local Config Create ~/.config/git/config.local for work-specific settings:

[user]
  email = "work@example.com"

Local Environment Variables Create ~/.env.local.sh for machine-specific environment variables:

export OPENAI_API_KEY="sk-..."
export WORK_PROJECT_PATH="$HOME/work"

Environment-Specific Packages

The dotfiles automatically detect your environment based on username:

  • Home (relativesanity): Installs core packages + all personal packages
  • Work (other usernames): Installs core packages only

Package files:

  • Brewfile - Core packages (git, stow, gh, neovim, starship, zoxide, fzf, tmux, ghostty)
  • Brewfile.home - Personal packages (full setup)
  • Brewfile.work - Work-specific packages (add as needed)
  • Brewfile.local - Machine-specific overrides (gitignored)

To add packages on a work machine:

cd ~/.dotfiles
echo 'brew "package-name"' >> Brewfile.work
repack

macOS Customization

Dock and Window Animations

~/.dotfiles/bin/m.sh

System Permissions Grant permissions when prompted:

  • Accessibility (for Hammerspoon, AeroSpace)
  • Input Monitoring (for Kanata, if installed)
  • Screen Recording (for Hammerspoon screenshots)

Kanata Setup (Laptops Only)

Only needed for home row mods on MacBook internal keyboard.

See kanata/kanata.md for detailed instructions.

Maintenance

Update everything

redot  # Alias for ./bin/redot.sh

Update packages only

repack  # Alias for ./bin/repack.sh

Re-symlink configs

restow  # Alias for ./bin/restow.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors