My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.
Go to file
Donovan Glover 71fe986e34
meta: Prefer self in default.nix
I originally wrote default.nix files to "import all files in a given
directory" however this turns out to not be necessary when flakifying a
configuration and defining all modules, overlays, and packages as
outputs.

Instead of making these "default.nix" files the source of truth for all
imports, it should be more useful to make the flake.nix the source of
truth and programmatically use attribute values as needed.
2024-03-31 17:28:12 -04:00
.github docs: Add new cover image 2023-09-12 16:09:08 -04:00
assets eww: Inline config 2023-08-11 15:05:24 -04:00
containers meta: Switch from joshuto to yazi 2024-03-30 18:20:01 -04:00
hardware meta: Import hardware 2023-06-22 10:16:38 -04:00
home hyprland(swww): Use seasonal backgrounds 2024-03-30 18:41:11 -04:00
modules fonts: Fix fontconfig mono font 2024-03-31 15:35:14 -04:00
overlays meta: Prefer self in default.nix 2024-03-31 17:28:12 -04:00
packages packages: Update osu-backgrounds 2024-03-30 11:31:13 -04:00
patches overlays(kitty): Patch wlroots copying bug 2024-03-30 15:12:40 -04:00
specializations chore: Update flake inputs 2024-03-22 12:22:23 -04:00
tests tests: Improve internal docs 2024-03-30 08:33:53 -04:00
.gitignore Update .gitignore 2023-05-10 22:19:36 -04:00
cover.jpg docs: Add new cover image 2023-09-12 16:09:08 -04:00
default.nix meta: Import packages directory 2023-08-07 08:42:50 -04:00
flake.lock chore: Update to latest nixos-unstable release 2024-03-29 10:07:04 -04:00
flake.nix chore(nix): Remove useless self 2024-03-31 16:27:18 -04:00
LICENSE chore: Update LICENSE 2024-01-02 18:19:51 -05:00
README.md docs: Add new cover image 2023-09-12 16:09:08 -04:00
treefmt.toml treefmt: Replace crystal with deno 2023-08-31 12:25:45 -04:00

nix-config

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

A screenshot of Pepper looking earnestly at declaratively configured Git abbreviations for the fish shell, written in Nix. Background art: The market, In Bloom and Vertical cover book two screen by David Revoy CC-BY 4.0.

A screenshot of a Rust programming environment with Neovim, kitty, and bacon. 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!