cbrst/nix
Architecture

Flake inputs and overlays

The external projects the flake pins, and the local package fixes applied on top of nixpkgs.

flake.nix pins every external dependency in flake.lock. Builds use exactly these revisions until the lock file is updated deliberately.

Inputs

InputPurpose
nixpkgsnixos-unstable, the package set for every output
home-managerUser environment management; follows nixpkgs
nurNix User Repository, mainly for Firefox add-ons and a Sass language server
noctalia, noctalia-greeterThe Noctalia desktop shell and its login greeter
affinity-nixAffinity creative applications, with its own binary cache
brave-originThe upstream Brave browser build
serenaThe Serena MCP server used by AI coding tools
zshcsA Zsh language server for the editors
rtk-srcSource for RTK, built locally (not a flake)
meowsoot, kanagawaTheme sources for Neovim and Ghostty (not flakes)

Inputs that are flakes and take nixpkgs follow the repository's nixpkgs, so the whole configuration builds against one package set.

The flake's nixConfig adds the cache.forall.systems binary cache, which serves the Affinity packages. Asgard also lists it in nix.settings so the system's Nix daemon uses it.

Local packages

packages/ contains derivations that nixpkgs does not provide:

  • RTK (packages/rtk): "Rust Token Killer", which compresses command output for AI agents. It is built from the pinned rtk-src input. Its test suite is skipped because the crate denies warnings that only appear in the test build; the release binary builds normally.
  • Kanagawa GTK theme (packages/kanagawa-gtk-theme): installed when the theme family is kanagawa.

Overlays

flake.nix exports overlays.typescript-language-server-pnpm-hash-fix. The pinned nixpkgs records a stale pnpmDeps hash for typescript-language-server, so every build of it failed with a hash mismatch. The overlay pins the hash that the fetch actually produces. It is applied in configLib.mkHome and should be removed once nixpkgs is fixed upstream.

NixOS hosts add the NUR overlay through the desktop profile, and Asgard adds the Affinity overlay itself.

Last updated on

On this page