My NixOS configs.
Find a file
2024-10-19 19:59:55 -04:00
hosts Add an mkforce to the keys of the chromebook to avoid conflicting hotkeys 2024-10-19 13:07:09 -04:00
modules Add initial support for grub 2024-10-19 19:59:55 -04:00
overlays Move the minecraft overlay back out of the global overlays 2024-10-15 22:46:06 -04:00
variables Add a new theme and tamper with some files 2024-10-18 16:26:44 -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 Linked wrong repo for Will. Whoops! 2024-10-19 00:55:21 -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 my flake has to be done from an existing system. A minimal install is fastest, but is up to you. After installing NixOS, backup your hardware-config.nix file, so you can adapt it to fit the format of /hosts, adjusting other referenced files in the flake.nix file to reference your specific system.

An initial install will can be done with nixos-rebuild switch --flake /etc/nixos/.#host, where host 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 is done with home-manager switch --flake /etc/nixos. This will pull the config as defined in the flake as user@host, where user is the user running the home-manager command.

Usage

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

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 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 minimal flake for giving me a good basis for writing individual files and repeatedly helping me throughout the entire process.

Made with love ❤️

image