My NixOS configs.
Find a file
2025-03-10 01:40:34 -04:00
hosts Merge branch 'main' of ssh://git.nixfox.ca:2299/Bun/nixos-config 2025-03-09 17:27:13 -04:00
modules Remove aliases and update Nextcloud 2025-03-10 01:40:34 -04:00
.gitattributes Move around secrets and variables and the like 2025-03-02 03:58:14 -05:00
.gitignore Remove unnecessary imports and upgrade to Nvidia 565 2024-10-28 17:06:52 -04:00
flake.lock Update lock 2025-03-08 02:04:04 -05:00
flake.nix Add MacBook 2025-03-08 05:36:01 -05:00
LICENSE Change license holder 2025-03-03 01:51:13 -05:00
local.key.asc Please. 2024-08-25 00:07:41 -04:00
README.md Remove Rubble, update flake and such 2025-03-07 18:06:08 -05:00

Nix Systems

Thanks for taking a look at my Nix* flake! While this is primarily organized for my own use, you may find each individual service or config useful to read, reference, learn from, and adapt for your own systems.

Installation

You can install this flake from any system with Nix installed, including any ISO.
An initial install will can be done with nixos-rebuild switch --flake /etc/nixos/.#host, where host is a hostname defined in this flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes.
You will want to generate a hardware-config.nix file using nixos-generate-config --root ./ --no-filesystems, and adapt it to fit the format of /hosts, adjusting for your specific system.

Usage

Home-Manager is handled with the system, but can be used on other systems with Nix without root. A rebuild of a user's home is done with home-manager switch --flake /etc/nixos/.#user, as defined under homeConfigurations in the flake.

My config uses these tools:
Sway - Window manager / Desktop
ZSH - Primary shell
Foot - Terminal emulator
Rofi - App launcher and menu system

Shell aliases are defined in the home manager config to rebuild the Nix system, they are as follows:
flakedate - Update the flake.lock, which renews the sources of nixpkgs. This is needed to update the system.
nhs - An alias for nh to switch the system profile.

My server's config heavily references a git-crypt protected secrets file. These will have to be adapted and rewritten if anyone is to use my config directly.
For my use, unlocking secrets can be done with this command:
gpg --pinentry-mode loopback --decrypt local.key.asc | git-crypt unlock -

Credits

Without the help of heavy inspiration, I would not have been able to learn and get up and running nearly as quickly. My most heavily borrowed configs are as follows:
CloudyChris' nix-starter-configs fork, the very initial base of my conversion to flakes.
WillPower3309's personal flake for being a pleasure in the SwayFX Discord and having a really nice flake.nix file I borrowed from.
Jules Sommer's flake rewrite for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.

Made with love ❤️