Skip to content

Repository files navigation

dotfiles

The dotfiles for fuckin' awesome development environment

Supported environments

  • macOS 14 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.

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 and enables restart after power loss. 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

Configure applications that require manual setup:

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