<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>The Nix Arms</title><link>https://nixarms.com/</link><description>Recent content on The Nix Arms</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Wed, 11 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://nixarms.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Off Windows by Friday. Settled in by the weekend.</title><link>https://nixarms.com/start/windows/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/start/windows/</guid><description>&lt;p&gt;&lt;strong&gt;You&amp;rsquo;ll need:&lt;/strong&gt; a USB stick (8 GB or more), a backup of anything you care about, about two hours, and a cuppa.&lt;/p&gt;&#10;&lt;h2 id="read-this-before-you-install"&gt;Read this before you install&lt;/h2&gt;&#10;&lt;p&gt;The installer can wipe your disk. Its &lt;strong&gt;Erase disk&lt;/strong&gt; option deletes everything on the drive, Windows and your files included, and there&amp;rsquo;s no undo.&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Back up anything you&amp;rsquo;d miss to another drive or the cloud first.&lt;/li&gt;&#10;&lt;li&gt;If you want to keep Windows, choose &lt;strong&gt;Install alongside&lt;/strong&gt; (or install to a second drive), not Erase disk.&lt;/li&gt;&#10;&lt;li&gt;If your drive is encrypted with BitLocker, save your recovery key from your Microsoft account before you start. Windows may ask for it afterwards.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Round 1 below runs NixOS in a virtual machine, which touches none of this. Start there.&lt;/p&gt;</description></item><item><title>Misterio77/nix-starter-configs</title><link>https://nixarms.com/regulars/nix-starter-configs/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/nix-starter-configs/</guid><description>&lt;p&gt;Minimal and standard flake templates with heavy comments, designed to be the thing you copy on day one.&lt;/p&gt;</description></item><item><title>Vanilla configuration.nix</title><link>https://nixarms.com/brewhouse/vanilla/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/brewhouse/vanilla/</guid><description>&lt;h2 id="the-pour"&gt;The pour&lt;/h2&gt;&#10;&lt;p&gt;The installer writes two files to &lt;code&gt;/etc/nixos/&lt;/code&gt;. You edit &lt;code&gt;configuration.nix&lt;/code&gt;; &lt;code&gt;hardware-configuration.nix&lt;/code&gt; describes your disks and drivers and is best left alone.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# /etc/nixos/configuration.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;imports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="sr"&gt;./hardware-configuration.nix&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;steam&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then apply it:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nixos-rebuild switch&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;&#10;&lt;p&gt;The &lt;strong&gt;channel&lt;/strong&gt; decides which version of every package you get: a stable release, or unstable. &lt;code&gt;sudo nixos-rebuild switch --upgrade&lt;/code&gt; updates the channel and rebuilds in one go.&lt;/p&gt;&#10;&lt;p&gt;When the file gets long, split it up. Any file can pull in others:&lt;/p&gt;</description></item><item><title>You already like control. Now keep it.</title><link>https://nixarms.com/start/arch/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/start/arch/</guid><description>&lt;p&gt;You already know Linux, so there&amp;rsquo;s little new to learn about &lt;em&gt;what&lt;/em&gt; to configure. The change is in how: you stop editing the live system and describe it in a file. NixOS rebuilds the system from that file every time, so it can&amp;rsquo;t drift.&lt;/p&gt;&#10;&lt;h2 id="arch-habits-translated"&gt;Arch habits, translated&lt;/h2&gt;&#10;&lt;div class="table-wrap"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th scope="col"&gt;On Arch&lt;/th&gt;&lt;th scope="col"&gt;On NixOS&lt;/th&gt;&lt;th scope="col"&gt;What changes&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;code&gt;pacman -S foo&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Add &lt;code&gt;foo&lt;/code&gt; to &lt;code&gt;environment.systemPackages&lt;/code&gt;, rebuild&lt;/td&gt;&lt;td&gt;Installed software is part of your config, not your history.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;The AUR&lt;/td&gt;&lt;td&gt;nixpkgs (it probably has it), overlays, or a flake input&lt;/td&gt;&lt;td&gt;nixpkgs is very large. For anything missing, you write a small package.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Editing files in &lt;code&gt;/etc&lt;/code&gt;&lt;/td&gt;&lt;td&gt;NixOS options, e.g. &lt;code&gt;services.openssh.settings&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;/etc&lt;/code&gt; is generated. Your edits live in one place and survive rebuilds.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;code&gt;systemctl enable foo&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;services.foo.enable = true;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Services, users and firewall rules are all declared.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Dotfiles with stow or a bare repo&lt;/td&gt;&lt;td&gt;Home Manager&lt;/td&gt;&lt;td&gt;Your user config gets generations and rollbacks too.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Rolling release&lt;/td&gt;&lt;td&gt;The &lt;code&gt;nixos-unstable&lt;/code&gt; channel&lt;/td&gt;&lt;td&gt;Still rolling, but any update can be rolled back from the boot menu.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;The Arch Wiki&lt;/td&gt;&lt;td&gt;&lt;a href="https://search.nixos.org"&gt;search.nixos.org&lt;/a&gt; options + the &lt;a href="https://wiki.nixos.org"&gt;NixOS Wiki&lt;/a&gt;&lt;/td&gt;&lt;td&gt;The Arch Wiki is still great for concepts.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="hyprland-as-an-example"&gt;Hyprland, as an example&lt;/h2&gt;&#10;&lt;p&gt;Your Hyprland setup becomes part of the config, so it survives reinstalls:&lt;/p&gt;</description></item><item><title>Flakes</title><link>https://nixarms.com/brewhouse/flakes/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/brewhouse/flakes/</guid><description>&lt;h2 id="the-pour"&gt;The pour&lt;/h2&gt;&#10;&lt;p&gt;Your &lt;code&gt;configuration.nix&lt;/code&gt; doesn&amp;rsquo;t change at all. A &lt;code&gt;flake.nix&lt;/code&gt; sits next to it and says where everything comes from:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# flake.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:NixOS/nixpkgs/nixos-26.05&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nixosConfigurations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endgame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixosSystem&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;modules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="sr"&gt;./configuration.nix&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;# programs.steam.enable = true; lives in here&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Build the machine called &lt;code&gt;endgame&lt;/code&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo nixos-rebuild switch --flake .#endgame&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;&#10;&lt;p&gt;The first build writes &lt;code&gt;flake.lock&lt;/code&gt;, pinning the exact nixpkgs commit. Commit both files. To update, run &lt;code&gt;nix flake update&lt;/code&gt; and rebuild. If the new versions misbehave, roll back as usual or revert the lock file in git.&lt;/p&gt;</description></item><item><title>tomwrw/megadots</title><link>https://nixarms.com/regulars/megadots/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/megadots/</guid><description>&lt;p&gt;An AMD gaming desktop and a Surface Pro tablet from one &lt;a href="https://nixarms.com/brewhouse/den/"&gt;den&lt;/a&gt; config, with every feature written as a reusable aspect.&lt;/p&gt;</description></item><item><title>Same desktops, fewer surprises.</title><link>https://nixarms.com/start/ubuntu/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/start/ubuntu/</guid><description>&lt;p&gt;If you&amp;rsquo;ve had a release upgrade fail halfway, or a PPA leave your system in a strange state, this is the part of NixOS you&amp;rsquo;ll like. Every change builds a complete new system first, and NixOS only switches to it if the build succeeded.&lt;/p&gt;&#10;&lt;h2 id="ubuntu-habits-translated"&gt;Ubuntu habits, translated&lt;/h2&gt;&#10;&lt;div class="table-wrap"&gt;&#10;&lt;table&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th scope="col"&gt;On Ubuntu&lt;/th&gt;&lt;th scope="col"&gt;On NixOS&lt;/th&gt;&lt;th scope="col"&gt;What changes&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;code&gt;sudo apt install foo&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Add &lt;code&gt;foo&lt;/code&gt; to &lt;code&gt;environment.systemPackages&lt;/code&gt;, rebuild&lt;/td&gt;&lt;td&gt;Your installed apps are a list you can read, copy and share.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;PPAs for newer versions&lt;/td&gt;&lt;td&gt;Pull single packages from &lt;code&gt;nixos-unstable&lt;/code&gt;&lt;/td&gt;&lt;td&gt;No third-party repos to break your upgrades.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;Snaps&lt;/td&gt;&lt;td&gt;Flatpak: &lt;code&gt;services.flatpak.enable = true;&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Snaps aren&amp;rsquo;t supported out of the box. Flatpak and Flathub are.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;code&gt;do-release-upgrade&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Switch channel, then &lt;code&gt;nixos-rebuild switch --upgrade&lt;/code&gt;&lt;/td&gt;&lt;td&gt;If the new release misbehaves, boot the old one.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;LTS every two years&lt;/td&gt;&lt;td&gt;A stable release every May and November&lt;/td&gt;&lt;td&gt;Each release gets about seven months of updates, so you move up twice a year.&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="your-desktop"&gt;Your desktop&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;desktopManager&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gnome&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;services&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;displayManager&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gdm&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For KDE, swap those two lines for &lt;code&gt;services.desktopManager.plasma6.enable = true;&lt;/code&gt; and &lt;code&gt;services.displayManager.sddm.enable = true;&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>flake-parts</title><link>https://nixarms.com/brewhouse/flake-parts/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/brewhouse/flake-parts/</guid><description>&lt;h2 id="the-pour"&gt;The pour&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;flake.nix&lt;/code&gt; hands over to flake-parts, and each machine becomes its own module:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# flake.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:NixOS/nixpkgs/nixos-26.05&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake-parts&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:hercules-ci/flake-parts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;flake-parts&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake-parts&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkFlake&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;inherit&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;systems&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;x86_64-linux&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;imports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="sr"&gt;./hosts/endgame.nix&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# hosts/endgame.nix (a flake-parts module)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixosConfigurations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endgame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixosSystem&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;modules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="sr"&gt;../configuration.nix&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;# Steam still lives in here&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;&#10;&lt;p&gt;flake-parts runs the same module system as NixOS, but one level up: its modules describe the &lt;em&gt;flake&amp;rsquo;s outputs&lt;/em&gt; instead of a machine. That&amp;rsquo;s why it&amp;rsquo;s mainly useful once there are several outputs to organise, such as machines, dev shells, packages and checks.&lt;/p&gt;</description></item><item><title>Misterio77/nix-config</title><link>https://nixarms.com/regulars/misterio77-nix-config/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/misterio77-nix-config/</guid><description>&lt;p&gt;A widely copied personal config, with a clean separation of hosts, users and shared modules.&lt;/p&gt;</description></item><item><title>ryan4yin/nix-config</title><link>https://nixarms.com/regulars/ryan4yin-nix-config/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/ryan4yin-nix-config/</guid><description>&lt;p&gt;From the author of the NixOS &amp;amp; Flakes Book: desktops, servers and macOS, all in one place.&lt;/p&gt;</description></item><item><title>The dendritic pattern</title><link>https://nixarms.com/brewhouse/dendritic/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/brewhouse/dendritic/</guid><description>&lt;h2 id="the-pour"&gt;The pour&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;flake.nix&lt;/code&gt; shrinks to almost nothing: it loads every file under &lt;code&gt;modules/&lt;/code&gt; with &lt;a href="https://github.com/denful/import-tree"&gt;import-tree&lt;/a&gt;, and each file is a flake-parts module.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# flake.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:NixOS/nixpkgs/nixos-26.05&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake-parts&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:hercules-ci/flake-parts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;import-tree&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;github:denful/import-tree&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;outputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flake-parts&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mkFlake&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;inherit&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;import-tree&lt;/span&gt; &lt;span class="sr"&gt;./modules&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Steam gets a file of its own, as a &lt;em&gt;feature&lt;/em&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# modules/gaming.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixos&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gaming&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;steam&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The machine then picks its features:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# modules/hosts/endgame.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;flake&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixosConfigurations&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endgame&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;inputs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixpkgs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixosSystem&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;modules&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flake&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nixos&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;gaming&lt;/span&gt; &lt;span class="n"&gt;desktop&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;&#10;&lt;p&gt;Because every file is a module of the &lt;em&gt;same&lt;/em&gt; top-level config, any file can add to any part of it (a NixOS setting, a Home Manager setting, a flake input), and features can be shared by any machine. The &lt;code&gt;flake.modules&lt;/code&gt; option comes from flake-parts&amp;rsquo; modules module, which you import once.&lt;/p&gt;</description></item><item><title>den</title><link>https://nixarms.com/brewhouse/den/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/brewhouse/den/</guid><description>&lt;h2 id="the-pour"&gt;The pour&lt;/h2&gt;&#10;&lt;p&gt;Declare the machine and its user, then give the machine its aspects:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# modules/hosts.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;den&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;den&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;hosts&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x86_64-linux&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endgame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tom&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;den&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;aspects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;endgame&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;includes&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="n"&gt;den&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;aspects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gaming&lt;/span&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;gaming&lt;/code&gt; aspect is where Steam lives. It could set Mac or Home Manager options in the same place:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# modules/aspects/gaming.nix&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;den&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;aspects&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gaming&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nixos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;steam&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;&#10;&lt;p&gt;den creates an aspect for every host and user you declare. Each aspect holds settings grouped by &lt;strong&gt;class&lt;/strong&gt; (&lt;code&gt;nixos&lt;/code&gt;, &lt;code&gt;darwin&lt;/code&gt;, &lt;code&gt;homeManager&lt;/code&gt;) and can include other aspects, so you build roles out of small, reusable pieces.&lt;/p&gt;</description></item><item><title>mitchellh/nixos-config</title><link>https://nixarms.com/regulars/mitchellh-nixos-config/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/mitchellh-nixos-config/</guid><description>&lt;p&gt;Runs NixOS in a VM on a Mac as a daily development machine. A neat look at Nix outside a normal PC.&lt;/p&gt;</description></item><item><title>fufexan/dotfiles</title><link>https://nixarms.com/regulars/fufexan-dotfiles/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/fufexan-dotfiles/</guid><description>&lt;p&gt;A polished Hyprland desktop, kept entirely in config.&lt;/p&gt;</description></item><item><title>mightyiam/infra</title><link>https://nixarms.com/regulars/mightyiam-infra/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/regulars/mightyiam-infra/</guid><description>&lt;p&gt;The personal infrastructure of the person who first wrote up the dendritic pattern, and the reference for what one looks like in practice.&lt;/p&gt;</description></item><item><title>Gaming on NixOS: get a round in.</title><link>https://nixarms.com/gaming/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/gaming/</guid><description>&lt;h2 id="the-house-pour"&gt;The house pour&lt;/h2&gt;&#10;&lt;p&gt;This is a full gaming setup in one file. Save it as &lt;code&gt;gaming.nix&lt;/code&gt;, import it from your &lt;code&gt;configuration.nix&lt;/code&gt;, and rebuild.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nix" data-lang="nix"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;steam&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;remotePlay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;openFirewall&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;gamescopeSession&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;};&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;programs&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gamemode&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;hardware&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;graphics&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;enable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;environment&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;systemPackages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;pkgs&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mangohud&lt;/span&gt; &lt;span class="n"&gt;heroic&lt;/span&gt; &lt;span class="n"&gt;lutris&lt;/span&gt; &lt;span class="n"&gt;protonup-qt&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Steam&lt;/strong&gt; with Proton built in, plus ports opened for Remote Play.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;gamemode&lt;/strong&gt; nudges your CPU into performance mode while you play.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;gamescope&lt;/strong&gt; gives you a couch-friendly, Steam Deck-style session.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;MangoHud&lt;/strong&gt; shows FPS and temperatures; &lt;strong&gt;Heroic&lt;/strong&gt; covers Epic and GOG.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="will-my-games-run"&gt;Will my games run?&lt;/h2&gt;&#10;&lt;p&gt;Mostly, yes. When a game doesn&amp;rsquo;t run, the cause is usually its anti-cheat, which blocks Linux in general. Check your exact titles on &lt;a href="https://www.protondb.com"&gt;ProtonDB&lt;/a&gt; and &lt;a href="https://areweanticheatyet.com"&gt;Are We Anti-Cheat Yet?&lt;/a&gt; before you switch.&lt;/p&gt;</description></item><item><title>Privacy</title><link>https://nixarms.com/privacy/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/privacy/</guid><description>&lt;h2 id="cookies-and-accounts"&gt;Cookies and accounts&lt;/h2&gt;&#10;&lt;p&gt;The site doesn&amp;rsquo;t set cookies, doesn&amp;rsquo;t store anything in your browser, and has no accounts, logins or forms.&lt;/p&gt;&#10;&lt;h2 id="visit-counting"&gt;Visit counting&lt;/h2&gt;&#10;&#10;&lt;p&gt;The site counts visits with &lt;a href="https://www.goatcounter.com"&gt;GoatCounter&lt;/a&gt;, an open-source analytics service. It records the page you visited, the site that linked you here, your browser and screen size, and your country (worked out from your IP address, which isn't stored). It doesn't use cookies and doesn't track you across other sites. The numbers are only used to see which pages are useful, never for advertising.&lt;/p&gt;</description></item><item><title>The Landlord</title><link>https://nixarms.com/landlord/</link><pubDate>Wed, 11 Nov 2026 00:00:00 +0000</pubDate><guid>https://nixarms.com/landlord/</guid><description>&lt;p&gt;I&amp;rsquo;m Tom, and I run The Nix Arms.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;m a firm believer in Nix. Once you&amp;rsquo;ve rebuilt a whole machine from your config, or rolled back a bad update from the boot menu, it&amp;rsquo;s hard to go back to anything else. But most of what&amp;rsquo;s written about Nix assumes you&amp;rsquo;re already a developer, and I think that puts off a lot of people who&amp;rsquo;d get on well with it.&lt;/p&gt;&#10;&lt;p&gt;So I opened a pub. The guides here are written for people who aren&amp;rsquo;t developers, and they say so when something doesn&amp;rsquo;t work. There&amp;rsquo;s a place to start whether you&amp;rsquo;re coming from Arch, Ubuntu or Windows.&lt;/p&gt;</description></item><item><title>Nix jargon, translated</title><link>https://nixarms.com/menu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nixarms.com/menu/</guid><description/></item><item><title>When you're ready for more</title><link>https://nixarms.com/library/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://nixarms.com/library/</guid><description/></item></channel></rss>