mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-11-24 17:23:09 +01:00
My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.
95b10ec3ef
Now that I've figured out how to dynamically import modules and use those modules as outputs, the next step is to ensure that these modules work as intended when being used by end users. NixOS offers a built-in testing solution that enables us to conveniently spin up virtual machines with a given configuration, then verify their correctness through python scripting. The lib.nix file in particular is based on Jörg Thalheim's very useful blog post that explains how to use the built-in testing functionality with Nix flakes, which isn't covered in official documentation. See: https://blog.thalheim.io/2023/01/08/how-to-use-nixos-testing-framework-with-flakes/ |
||
---|---|---|
.github | ||
assets | ||
containers | ||
hardware | ||
home | ||
modules | ||
overlays | ||
packages | ||
patches | ||
specializations | ||
tests | ||
.gitignore | ||
cover.jpg | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md |
nix-config
My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.
Background art: The market, In Bloom and Vertical cover book two screen by David Revoy − CC-BY 4.0.
Background art: Video game jam by David Revoy − CC-BY 4.0.
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.
- Specializations for easy switching between Hyprland, GNOME, and Plasma.
- 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!