Skip to content

4evy/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,371 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles 🌸

Personal Spectrum/Bluefin, macOS, Homebrew, Ansible, and chezmoi setup.

GHCR Spectrum image

Bluefin NixOS macOS

Homebrew chezmoi Ansible Catppuccin Latte and Frappe

Important

This is my personal setup.

Setup

Spectrum / Bluefin

Start from a fresh Bluefin install:

git clone https://github.com/4evy/dotfiles.git ~/dotfiles
cd ~/dotfiles
sudo bootc switch ghcr.io/4evy/spectrum:latest
systemctl reboot

After rebooting into Spectrum, finish the machine setup:

cd ~/dotfiles
just setup

NixOS

The NixOS host keeps the same chezmoi and Ansible orchestration, but NixOS owns all system, desktop, development, and repository-tool packages. The Ansible roles deliberately skip Homebrew, Rustup, Bun-global, Nix-profile, downloaded script, and source/archive installers when the detected distribution is NixOS.

From an installed NixOS system:

git clone https://github.com/4evy/dotfiles.git ~/dotfiles
cd ~/dotfiles
sudo nixos-rebuild switch --flake .#nixos
just setup

just setup still applies the shared Ansible playbooks and chezmoi source. On NixOS, host and package state changes belong in hosts/linux or modules/nixos, followed by another nixos-rebuild.

macOS

git clone https://github.com/4evy/dotfiles.git ~/dotfiles
cd ~/dotfiles
./ansible/bootstrap.sh ansible/playbooks/userland.yml
chezmoi init --source "$PWD/dotfiles"
chezmoi apply --refresh-externals=auto --force

Commands

Run just to see every recipe and alias.

Machine setup

just setup          # first full setup: userland, dotfiles, and host roles
just update         # refresh an already configured machine
just apply          # apply only chezmoi dotfiles
just nix            # install Nix and the repo's Nix profile tools
just doctor setup   # check dependencies needed for setup
just doctor all     # check every known workflow dependency

Spectrum image

just status          # show bootc and image metadata
just install         # switch to the published Spectrum image
just build           # build localhost/spectrum:local using cached layers
just build-clean     # explicitly rebuild every image layer
just spectrum-dev    # compatibility name for the cached local build
just switch          # rebuild and switch/stage the local image
just upgrade         # rebuild the local image and stage a bootc upgrade
just reboot          # reboot through systemd
just spectrum-lint   # validate the image build scripts
just spectrum-diff   # compare RPMs in Bluefin and Spectrum

just install, just switch, and just upgrade handle bootc image updates; just update only refreshes userland, dotfiles, and host roles.

Development

just check           # run the full validation suite
just fmt             # format repository files
just check-format    # check formatting without changing files
just watch check     # rerun checks when files change
just smoke           # build and validate the Fedora smoke-test container
just smoke-shell     # open a shell in the smoke-test container

Focused checks:

go test ./...
just python-complexity
just python-dead-code
uv run --locked pytest
uv run spectrum-build check
bun run --filter hyper-window-tiling check

Python command surfaces use Cyclopts as their single CLI framework. Function signatures and docstrings declare commands and help; Parameter, Group, and environment configuration declare validation, aliases, and settings. Small bootstrap scripts that must run before project dependencies are installed stay on the standard library's argparse.

Nix and Ansible

nix flake check
nix run .#ghidra-mcp
sudo nixos-rebuild switch --flake .#nixos

ansible-playbook ansible/playbooks/host.yml
ansible-playbook ansible/playbooks/site.yml

License

LICENSE

Packages

 
 
 

Contributors