My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.
Go to file
Donovan Glover f8d5b35464
meta: Don't use NixOS networks
Networks are a way to start multiple NixOS virtual machines at the same
time. Although cute, networks seem to be used more for "test scripts"
and ultimately don't support Nix flakes. This results in package
versions being outdated and the inability to use our existing
home-manager input and other flakes.

Multiple nixosConfigurations, on the other hand, enable us to setup
entire computers that don't *have* to be virtual machines, but can be
virtual machines if we want them to be. Additionally, it becomes trivial
to only run the configurations you want to run, without having to worry
about everything being tied to everything else. Finally, persistence is
optional and the resulting .qcow2 file is quite small.

Ultimately, Nix flakes are a more flexible solution to the older
nixos-build-vms command, and should be preferred over it in pretty much
all cases. To reiterate, if you're using flakes, there's no reason to
use the outdated nixos-build-vms command, which won't have the same
package versions as the ones in your flake.
2023-06-18 10:57:55 -04:00
assets meta: Flatten packages directory 2023-06-17 20:55:32 -04:00
containers containers: Add obsidian 2023-06-17 22:43:01 -04:00
home udiskie: Only enable if hyprland 2023-06-17 22:46:29 -04:00
modules meta: Share directories with virtual machines 2023-06-18 10:44:44 -04:00
overlays meta: Flatten overlays directory 2023-06-16 12:47:36 -04:00
packages meta: Flatten packages directory 2023-06-17 20:55:32 -04:00
patches meta: Flatten overlays directory 2023-06-16 12:47:36 -04:00
specializations meta: Use separate module for plasma 2023-06-17 22:23:25 -04:00
src meta: Add network example 2023-06-18 08:09:44 -04:00
tests meta: Use separate directory for home-manager modules 2023-06-16 08:13:34 -04:00
.gitignore Update .gitignore 2023-05-10 22:19:36 -04:00
flake.lock chore: Update flake inputs 2023-06-16 13:58:48 -04:00
flake.nix nix: Remove formatter from flake.nix 2023-06-18 08:34:24 -04:00
LICENSE Update LICENSE 2023-04-30 19:37:54 -04:00
README.md misc: Fix typo 2023-06-16 06:20:39 -04:00
treefmt.toml meta: Add treefmt 2023-06-12 03:48:15 -04:00

nix-config

My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.

Features

  • Clean, readable code that can be easily modified to add/remove things as needed.
  • Fully reproducible and declarative environment thanks to NixOS.
  • Reasonably secure containers isolated from your personal files and network.
  • Nix Flakes + Home Manager + Btrfs on LUKS.
  • Simple yet effective Neovim setup with nvim-lspconfig.
  • Modern Wayland support with Hyprland and the master-stack layout.
  • Full Japanese support with fonts, input method, and wine covered.
  • A universal color scheme inherited by all applications.

Usage

git clone https://github.com/donovanglover/nix-config && cd nix-config
nixos-rebuild build-vm --flake .#nixos
./result/bin/run-nixos-vm

The code base is designed to be small so it's easy to adjust things as needed. Have fun!