My NixOS configs.
Find a file
2024-10-18 15:45:38 -04:00
hosts Add Chromebook to the roster without secrets 2024-10-18 15:44:38 -04:00
modules Add Chromebook to the roster 2024-10-18 15:32:32 -04:00
overlays Move the minecraft overlay back out of the global overlays 2024-10-15 22:46:06 -04:00
variables Add back secrets, again 2024-10-18 15:45:38 -04:00
.gitattributes What a clusterfuck 2024-10-09 03:36:08 -04:00
flake.lock Move the minecraft overlay back out of the global overlays 2024-10-15 22:46:06 -04:00
flake.nix Add Chromebook to the roster 2024-10-18 15:32:32 -04:00
LICENSE Initial commit 2024-07-30 08:49:49 -04:00
local.key.asc Please. 2024-08-25 00:07:41 -04:00
preview.png Update preview image 2024-09-13 02:10:21 -04:00
README.md Update README again to fix formatting 2024-10-16 02:29:00 -04:00

My Nix files, now organized in a flake.

Thanks for taking a look at my Nix* configs! While this is primarily organized for my use only, you may find each individual service file or user config to be a good starting point, or something to take and adapt into your own config.

Installation

Installing any of my flakes onto a system should be done after any initial install. I would opt to do a minimal install, but this is up to you. After installing NixOS, backup your hardware-config.nix file, so you can adapt it to fit the format of nixos/hardware/machines, then adjusting the other referenced files in the flake.nix file to reference your specific computer.

An initial install will have to be ran as nixos-rebuild switch --flake /etc/nixos/.#HOSTNAME, where HOSTNAME is a hostname defined in your flake. You may also have to enable "experimental" features with a flag, such as nix-command and flakes. Home-Manager is handled separately, despite being in the same folder. A rebuild of a user's home would have to be done with home-manager switch --flake /etc/nixos. This will pull the config as defined in the flake as USER@HOSTNAME, where USER is the user running the home-manager command.

Usage

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

I have made shell aliases in ZSH for rebuilding the system. They are as follows:
flakedate - Update the flake.lock, which renews the sources of nixpkgs. This is needed to update the system.
sysswitch - Switch the system profile.
homeswitch = Switch the user's home-manager profile.
nixswitch = Switch to new config for both user and system.
nixdate = Same as before, but updating flake.nix before doing so. This is essentially a full system update.

My config heavily references a gnupg-protected secrets file. These will have to be adapted and rewritten if anyone is to use my config for themselves.
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 minimal flake for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.

Made with love ❤️

image