Skip to content

Latest commit

 

History

2,015 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

My personal workstation config for Spectrum/Bluefin, NixOS, and macOS

Important

This repository is for my machines. It's public for reference, but it isn't a reusable installer or a supported project

The goal is to make every machine feel like mine without maintaining the same config four times

Rebuilding a machine

I keep the repo at ~/dotfiles:

git clone https://github.com/4evy/dotfiles.git ~/dotfiles
cd ~/dotfiles
Spectrum / Bluefin

On a fresh Bluefin install, I switch to the Spectrum image:

sudo bootc switch ghcr.io/4evy/spectrum:latest
systemctl reboot

After the reboot, I finish the setup:

cd ~/dotfiles
just setup
NixOS

On an installed NixOS system, I apply the flake and finish the shared setup:

sudo nixos-rebuild \
  --option extra-substituters https://install.determinate.systems \
  --option extra-trusted-public-keys cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM= \
  --flake .#nixos \
  switch
just setup

The extra cache options are only needed for the first rebuild. Afterward, this shorter command is enough:

sudo nixos-rebuild switch --flake .#nixos
macOS

This path needs macOS 26 or newer. From the cloned repo, I run:

./ansible/bootstrap.sh --setup

The script bootstraps Homebrew and Ansible, installs the userland, applies the dotfiles, and configures the Mac. It asks for administrator and 1Password access when needed

Commands

just or just --list shows every recipe

Everyday commands
Command Aliases Purpose
just setup just s Bootstrap and apply everything
just update just up Update userland, dotfiles, and host setup
just dotfiles-diff just diff Preview pending chezmoi changes
just apply [targets...] just a Apply all dotfiles or only the given targets
just status - Show Spectrum image status
just doctor [profile] - Check every workflow dependency or one profile
just determinate-status - Show the Determinate version, features, and daemon state
just determinate-upgrade - Upgrade installer-managed Determinate Nix
just nix just nx Install Nix and ensure its profile tools are available
just spectrum-validate just validate Validate the BlueBuild recipe and base digest
just spectrum-build just build Build Spectrum locally
just fmt just f Format the repository
just check-format just cf Check repository formatting without retaining rewrites
just lint just l Run static checks
just check just c, just ck Run the full validation suite
just python-typecheck [args...] just typecheck Type-check Python, forwarding optional arguments
just watch [recipe] just w Rerun a recipe when files change
just reboot just r Reboot the Linux host after confirmation
just help [command] just h List recipes or show command usage

Run just help <command> with either a command or alias for argument details.

I keep shared tool configuration at the root: .editorconfig for shell formatting, .yamlfmt for YAML, and .luacheckrc for Lua globals. Direct tool commands, editor integrations, and the Nix checks read the same settings. go.work connects the records command and theme-run, so I can check both modules from here with go vet ./... ./packages/theme-run/....

For direct Nix work, drop down a level:

nix develop
just nix-check

License

MIT

Packages

Contributors

Languages