<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/meta/nix.txt, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/meta/nix.txt?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/meta/nix.txt?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-13T12:43:32Z</updated>
<entry>
<title>refactor(meta): flatten groups; only break out optional/hw-specific</title>
<updated>2026-05-13T12:43:32Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:32Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=2970b9dddc6b89705a6836fa0864fb841925ff6f'/>
<id>urn:sha1:2970b9dddc6b89705a6836fa0864fb841925ff6f</id>
<content type='text'>
Drop the per-domain group fragmentation in meta/ and the parallel
group-per-file structure in systemd-units/.

  meta/ (18 -&gt; 6 groups):
    keep    base, flatpak (magic), intel, nvidia, work, btc
    fold    browser, bt, cpp, dev, extra, fonts, mail, media, nix,
            sound, wayland -&gt; base (with `# --- section ---` comments
            preserving at-a-glance structure)
    drop    fortran (niche; install ad-hoc when needed)

  systemd-units/:
    flatten to a single system.txt + user.txt; .ignore files move up
    one level; group concept and pairing rule removed.

  justfile:
    unit-list/unit-apply/unit-status no longer take a group argument.
    unit-add/unit-forget infer scope by probing
    `systemctl [--user] cat &lt;unit&gt;` (system wins on tie). Top-level
    add/forget dispatcher updated: any unit-suffixed arg routes to
    unit-* without requiring a leading GROUP.

  docs:
    .github/copilot-instructions.md and README.md updated to describe
    the new flat layout. Pairing rule and group-token grammar gone.

Pure layout refactor - no package contents change.
</content>
</entry>
<entry>
<title>feat(nix): hybrid setup with flakes + direnv for per-project dev shells</title>
<updated>2026-05-13T12:43:24Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:24Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=ebad39adab212ab4e26f9a98befa0048c7eea710'/>
<id>urn:sha1:ebad39adab212ab4e26f9a98befa0048c7eea710</id>
<content type='text'>
Install Nix (multi-user daemon) on Arch and wire up direnv so any project
can declare its toolchain in a flake.nix and get a hermetic dev shell on
cd. No NixOS, no home-manager, no migration off paru/chezmoi — just one
new package manager scoped to project dev shells.

- meta/nix.txt: nix from extra repo
- meta/dev.txt: direnv (general-purpose, not nix-specific)
- systemd-units/system/nix.txt: nix-daemon.socket (socket-activated)
- etc/nix/nix.conf: enable flakes + nix-command, trusted-users=@wheel,
  auto-optimise-store, keep-outputs/derivations so direnv envs survive GC
- dot_config/direnv/direnvrc: load nix-direnv 3.1.1 via source_url with
  pinned sha256 (not packaged for Arch; refusing -git AUR)
- dot_config/nix/templates/{flake.nix,dev/}: flake template usable via
  'nix flake init -t ~/.config/nix/templates'
- dot_config/zsh/dot_zshrc: 'eval "$(direnv hook zsh)"'
</content>
</entry>
</feed>
