My NixOS configuration with Nix Flakes, Home Manager, Stylix, and Hyprland.
Go to file
Donovan Glover 59f557a3e5
feat: Pass nix-config as self to avoid infinite recursion
This change makes it possible to use this nix-config in all the
different ways imaginable (containers, bare metal, tests, and as a
separate flake input) *without* running into infinite recursion
issues with self.

It does this by using a trick similar to JavaScript in which
`var self = this;`, thus enabling the usage of "this" (or self, in
Nix's case) where it wouldn't otherwise be possible.

Note that this *only* works if the input for this repository is named
nix-config. This makes it impractical to combine with multiple
configurations that employ the same strategy.
2024-04-05 10:20:06 -04:00
.github meta: Drop deno tests 2024-04-01 09:31:51 -04:00
assets eww: Inline config 2023-08-11 15:05:24 -04:00
containers chore: Remove redundant container configuration 2024-04-05 08:14:42 -04:00
hardware meta: Drop default hardware 2024-04-01 04:33:47 -04:00
home kitty: Use sane layout order 2024-04-05 08:11:07 -04:00
modules feat: Pass nix-config as self to avoid infinite recursion 2024-04-05 10:20:06 -04:00
overlays meta: Switch to upstream stylix 2024-04-01 05:35:27 -04:00
packages packages: Add mdopen 2024-04-03 19:47:20 -04:00
patches overlays(kitty): Patch wlroots copying bug 2024-03-30 15:12:40 -04:00
specializations feat: Make username customizable 2024-04-04 16:36:28 -04:00
tests feat: Pass nix-config as self to avoid infinite recursion 2024-04-05 10:20:06 -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
flake.lock meta: Switch to upstream stylix 2024-04-01 05:35:27 -04:00
flake.nix feat: Pass nix-config as self to avoid infinite recursion 2024-04-05 10:20:06 -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

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!