Skip to content

Repository files navigation

dotfiles

The dotfiles for fuckin' awesome development environment

Supported environments

  • macOS 26 or later (Apple Silicon only)

Install

Before anything else, open System Settings > General > Software Update and update macOS to the latest version. On a brand-new Mac (or one that was just reinstalled), the update catalog can be stale and block jumping straight to the latest version — if that happens, install the full installer or step through the intermediate versions it offers first.

bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"

By default the repo is cloned to ~/src/github.com/p-chan/dotfiles. To use another location (CI, a temporary macOS environment, or an existing checkout), set DOTFILES_DIR:

DOTFILES_DIR="$PWD" bash scripts/install.sh

install.sh records the location as mise's dotfiles.root setting in home/.config/mise/conf.d/dotfiles-root.toml (machine-local, gitignored), so plain mise bootstrap invocations need no environment setup afterwards. To move the checkout later, move the directory and re-run install.sh with DOTFILES_DIR pointing at the new path.

Herdr Claude integration

mise bootstrap installs the Herdr integration for Claude Code. Herdr requires an absolute path for its hook, so Git keeps the portable $HOME form in the index and restores the local path in the work tree. The generated hook remains local.

Profiles

The shared configuration is always active. Machine-specific behavior is added with one or both of these profiles:

Profile Purpose
desktop GUI apps, Dock/Finder preferences, and editor settings
server Always-on power settings for unattended remote operation

The first install defaults to desktop. Select a headless server or compose both roles with DOTFILES_PROFILES:

DOTFILES_PROFILES=server \
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"
DOTFILES_PROFILES=desktop,server \
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/p-chan/dotfiles/main/scripts/install.sh)"

The selection is persisted as machine-local symlinks under home/.config/mise/conf.d/, so subsequent mise bootstrap and install.sh runs preserve it. To change the selection later, run:

DOTFILES_PROFILES=desktop,server \
  bash "$DOTFILES_DIR/scripts/configure-profiles.sh" "$DOTFILES_DIR"
mise bootstrap

The server profile disables idle system sleep on AC power, enables restart after power loss, and waits for you to enable Remote Login in System Settings. Its first convergence requires an administrator password; run mise run bootstrap-server to apply only those settings. Removing a profile stops managing its settings but does not uninstall packages or restore previous macOS settings automatically.

Setup

GUI applications installed by Homebrew. Dotfiles is the config path this repo symlinks into place, and Document links to the steps to follow by hand after install.

App Start at login Dotfiles Document
1Password docs/apps/1password.md
Arc docs/apps/arc.md
ChatGPT
Claude
CleanShot X
CodexBar
Cyberduck
Docker Desktop
Fantastical docs/apps/fantastical.md
Figma docs/apps/figma.md
Ghostty ~/.config/ghostty
Google Chrome docs/apps/chrome.md
Google Japanese IME docs/apps/google-japanese-ime.md
Handy docs/apps/handy.md
iStat Menus docs/apps/istat-menus.md
Karabiner-Elements ~/.config/karabiner
Logi Options+ docs/apps/logi-options-plus.md
Mimestream
Raycast
Slack docs/apps/slack.md
Zed ~/.config/zed/settings.json

A fresh machine only needs a handful of these before it is workable: 1Password for the credentials and license keys the other documents link to, Arc as the main browser to sign in everywhere else, Karabiner-Elements, Google Japanese IME, and Logi Options+ for keyboard and mouse input, and Raycast as the launcher. The rest can wait until they are actually needed.

Maintenance

Upgrade

Upgrade Homebrew packages and mise tools.

dots up

Author

@p-chan

License

MIT License

About

The dotfiles for fuckin' awesome feeling development environment

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages