Skip to content

corrupt952/dotfiles

Repository files navigation

dotfiles

lint License: MIT

Personal macOS workstation configuration, declared as a Nix flake and applied with nix-darwin + home-manager.

Requirements

  • macOS (this configuration only supports aarch64-darwin)
  • 1Password for Mac, with Settings > Developer > Integrate with 1Password CLI enabled

Everything else, including Nix itself, is installed by setup.sh.

Setup

./setup.sh [username]

username defaults to the current macOS user. The script:

  1. Verifies 1Password for Mac is installed
  2. Writes machine-local identity files under machine-local/ (gitignored)
  3. Installs Nix via Lix if it isn't already present
  4. Runs darwin-rebuild switch against this flake

Re-run ./setup.sh any time to reapply the configuration after editing it.

What's managed

  • macOS defaults (darwin.nix) — Dock, Finder, trackpad, menu bar clock, Touch ID for sudo, scheduled Nix GC/store optimisation
  • Shell & tools (modules/) — zsh, tmux, WezTerm, git (aliases, delta, per-workspace identities), fzf/ripgrep/direnv, Ruby, opencode, and Claude Code settings/hooks
  • Workspace identities (modules/workspaces) — per-directory Git identity and sallyport-managed environment variables, driven by machine-local/identities.nix
  • A few of my own tools, pulled in as flake inputs: xckit, closest, tmuxist, sallyport

Structure

flake.nix           # inputs (nixpkgs, nix-darwin, home-manager, ...) and outputs
darwin.nix          # system-level (nix-darwin) configuration
home-manager.nix    # top-level home-manager configuration
modules/            # one directory per home-manager module
machine-local/      # gitignored; machine-specific identity, created by setup.sh

CI

Pushes are linted with shellcheck, actionlint, zizmor, and statix — see .github/workflows/lint.yaml.

License

MIT

About

Personal macOS workstation configuration managed with Nix flakes, nix-darwin, and home-manager

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Contributors