-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This project is a monorepo flake consisting of all of my NixOS devices and their (shared) configurations. I have organized this wiki so it's easier to understand what this flake does!
If you plan on using this flake to ease your entry into Nix, I must advise you to read this entire wiki before you do so! To build a solid foundational understanding of what you're installing on your machine, you need to know how the files are organized and what they do. Please read everything here before cloning and installing this flake.
As of writing this (5/5/2026) I have half a dozen NixOS devices. Each of these devices have their own config, but benefit from a shared configuration, mostly in modules/ (this is meant for pick-and-choose shared configuration) and home-manager/ (which is shared for all display-enabled devices and does not contain any host-specific config).
Each host is called in the flake.nix and organized in its hosts/ folder. In their folder, you can expect to find a hardware-configuration.nix file, which you MUST overwrite with your own if you are planning on building the flake. Hosts that use home-manager will usually have a hm.nix file, which is used to overwrite/add home-manager settings. Don't worry about this for now, if you are setting up a 1-device config you can just write to the file in the home-manager folder directly. These options are only used for host-specific functionality.
In each host contains a default.nix which is actually where most of the host-specific configuration resides. If you find yourself repeating things in every host-specific config, you should probably move it into common.nix (which is inherited by EVERY single configuration) or put it into modules/.
The reason why I've opted to use Home Manager even where my computers are strictly single-user is for the ease of configuration. Most of the program configurations rely on the config located in the user's home. While I wish this wasn't the case, it's really just too much hassle and boilerplate to go find a way to configure these programs that doesn't involve Home Manager. If you are here from Riceathon or Linuxfest, you will probably want to pay attention most to this section, and will probably want to check out the Desktop page.
Home-manager focuses more on the user-shown programs, like the DE, shell, and some programs (although programs may be configured outside home-manager, these are mostly small or globally configured things) (This is where basically all of the rice is!)
Since every desktop-enabled device uses the same configuration from home-manager/, all of the UX is the same betweeen all of my devices, which makes the experience very consistent. All of the screenshots here will look similar or the same to what you install on any host, which is the beauty of NixOS!
A note about getting AI assistance: If you are going to use AI to modify this flake for you, I highly encourage you to understand the changes its making. AI is a great tool for learning Nix but it's generally discouraged to rely on it. Learn from what its doing, consult the Nix search and don't use AI as a walking clutch.
If it helps to talk to a real person, I'm always available to help you with any Nix/NixOS-related questions! (@amazinaxel on Discord, or use this contact form)
A note about getting AI assistance: Especially with deeper low level config, less intelligent AI models can overcomplicate and bloat the codebase with poor/hacky configuration. If you are going to use AI to modify this flake for you, I highly encourage you to understand the changes its making. AI is a great tool for learning Nix for the first time, but I suggest that you actively learn and understand from what its doing, consult the Nix search and don't be dependent on it.
If it helps to talk to a real person, I am always available to help you with any Nix/NixOS-related questions! (@amazinaxel on Discord)
