Skip to content

Repository files navigation

dotfiles

DeepWiki

ryoppippi's dotfiles, managed as a Nix flake: nix-darwin plus Home Manager on macOS, standalone Home Manager on Linux.

Layout

  • flake.nix — inputs only; the outputs are flake-parts modules under nix/flake/
  • nix/flake/ — flake-parts modules: apps/, hosts/, formatter.nix, pkgs.nix
  • nix/mk-pkgs.nix — the overlaid nixpkgs instance shared by perSystem and the hosts
  • nix/modules/home/ — cross-platform Home Manager modules (packages, programs, dotfile symlinks)
  • nix/modules/darwin/ — macOS system settings, Homebrew, OmniWM
  • nix/modules/linux/ — Linux-only modules
  • nix/overlays/ — custom packages, also exposed as flake packages
  • nix/packages/node/ — Node packages built with Nix
  • fish/, nvim/, karabiner/ — plain config, symlinked or generated into place by Home Manager
  • agents/skills/, agents/shared/ — skills and instruction fragments shared by Claude Code and Codex
  • registry/sources/ — pinned external skill repositories

Setup

macOS

  1. Install Nix:

    curl -sSfL https://artifacts.nixos.org/nix-installer | sh -s -- install --enable-flakes
  2. Clone with ghq:

    nix shell nixpkgs#ghq nixpkgs#git --command ghq get github.com/ryoppippi/dotfiles
    cd "$(nix shell nixpkgs#ghq --command ghq root)/github.com/ryoppippi/dotfiles"
  3. Sign in to the Mac App Store (open -a "App Store") so masApps can install.

  4. Apply the configuration. This also installs Homebrew:

    sudo xcodebuild -license accept
    nix --accept-flake-config run .#switch
    exec fish

Linux

curl --proto '=https' --tlsv1.2 -sSf -L https://install.nixos.org | sh -s -- install
nix shell nixpkgs#ghq nixpkgs#git --command ghq get github.com/ryoppippi/dotfiles
cd "$(nix shell nixpkgs#ghq --command ghq root)/github.com/ryoppippi/dotfiles"
nix run .#switch

GitHub API rate limit

If Nix hits the GitHub API rate limit, load a token into GITHUB_TOKEN from a credential helper or password manager, then retry. Never paste the token into the command line or commit it.

NIX_CONFIG="access-tokens = github.com=$GITHUB_TOKEN" \
  nix --accept-flake-config run .#switch

Daily Usage

Flakes only see tracked, staged files, so git add changed paths before switching.

Command What it does
nix run .#switch Build and apply the darwin (macOS) or Home Manager (Linux) config
nix run .#build Build without applying
nix run .#fmt Run treefmt (-- --fail-on-change is what CI runs)
nix run .#update Update every flake input
nix run .#update-ai-tools Update only the llm-agents input
nix run .#update-node-packages Refresh nix/packages/node/
nix run .#skills-sources-lock Re-resolve the external skill pins in registry/sources/
nix run .#lazy2nix Regenerate Nix-served lazy.nvim plugin sources from the lock
nix run .#nvim-restore Restore Neovim plugins from nvim/lazy-lock.json

Scheduled GitHub Actions open PRs for flake inputs, overlays, node packages, and skill pins.

Window Management

See the OmniWM configuration and keyboard workflow.

Stats

Alt

About

ryoppippi's dotfiles

Resources

Stars

263 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages