Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

dotfiles

check

A portable development environment — one flake, any machine, at home in minutes.

  • Shell: zsh + starship, fzf, zoxide, atuin, eza, bat, fd
  • Editor: Neovim via nixvim — LSP, treesitter, telescope, dashboard (manual)
  • Claude Code: instructions, output style, agents, hooks, statusline (claude/)
  • Git: delta, lazygit, sensible defaults
  • Terminal: ghostty, zellij, yazi, btop
  • Toolbox: gh, jq, yq, ripgrep, bun, node, uv, just, watchexec, sd, xh, kubectl, helm, k9s, flux

Catppuccin everywhere — Mocha in the dark, Latte in the light.

Quick start

Any Linux box — server, jumpbox, Raspberry Pi

# 1. Install Nix (skip if present)
curl -fsSL https://install.determinate.systems/nix | sh -s -- install
# 2. Apply the environment (use trevato@aarch64-linux on ARM/Pi)
nix run home-manager -- switch -b backup --flake github:trevato/dotfiles#trevato@x86_64-linux

That's it — open a new shell and you're home.

macOS — full system via nix-darwin

# 1. Nix, and Homebrew for the two GUI casks (Ghostty, Spotify)
curl -fsSL https://install.determinate.systems/nix | sh -s -- install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 2. First switch bootstraps nix-darwin (the host name is the `hostname` in flake.nix)
git clone https://github.com/trevato/dotfiles ~/dotfiles
sudo nix run nix-darwin/master#darwin-rebuild -- switch --flake ~/dotfiles#otavert-mac

From then on it's nrs. Claude Code itself is the native installer (self-updating): curl -fsSL https://claude.ai/install.sh | bash.

Day to day

The repo is operated through its justfilejust lists the recipes. Two aliases cover the common ones from anywhere: nrs applies (just switch), nfu updates inputs (just update); both expect the clone at ~/dotfiles. just check evaluates every configuration for every system; CI runs the same on every push, on Linux and macOS runners.

Machine-local config

Anything private or machine-specific stays out of this repo. Three local files are sourced/included if they exist — create them per machine:

File Purpose
~/.zshrc.local machine-specific shell config, sourced last
~/.gitconfig.local credentials, work identities (includeIf), remotes
~/.ssh/config.local hosts, users, and keys

This is the portability contract: the repo carries the environment, the machine carries its secrets.

Claude Code's own state (~/.claude/projects, sessions, settings.local.json) stays local too; only the curated configuration is linked in from claude/. Because ~/.claude/settings.json is managed, changes Claude Code would make to it (/model, /output-style, /statusline) go in claude/settings.json followed by nrs.

Make it yours

Fork, then edit the user block in flake.nix — username, git identity, dashboard subtitle — and the darwin hostname beside it. Everything else reads from there. hosts/mac.nix holds Mac-only packages and macOS defaults; a Linux-only fork drops darwinConfigurations from flake.nix together with hosts/, modules/darwin.nix and modules/minecraft.nix. claude/ is yours to rewrite.

Structure

flake.nix # Entry point: identity, darwin system, per-arch home-manager, checks
justfile # switch / update / check / fmt
modules/
 home.nix # Portable user environment — shell, git, tools (all platforms)
 nixvim.nix # Neovim configuration
 claude.nix # Links claude/ into ~/.claude
 darwin.nix # macOS system packages, services, defaults
 minecraft.nix # Optional: Prism Launcher + JDK
hosts/mac.nix # Mac host specifics
claude/ # Claude Code: CLAUDE.md, settings, output style, agents, hook scripts
lib/ascii-banner.nix # Dashboard banner renderer
docs/nvim.md # Neovim manual
.github/workflows/ # CI: evaluate every configuration, check formatting

Conventions

  • Formatting: nix fmt (nixfmt via treefmt); CI enforces it
  • Commit style: lowercase, concise, imperative

About

my system

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /