Laptop, desktop, and home lab flake featuring Hyprland, Sway, declarative containers, a reverse proxy, and more.
Find a file
Aly Raffauf f0be637c39
Some checks are pending
git-mirror / gitlab-sync (push) Waiting to run
nix-build / clean-install-build (push) Waiting to run
nix-build / rofi-bluetooth-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-build / slateport-build (push) Waiting to run
nix-build / aly_petalburg-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run
flake.lock: Update (#200)
Flake lock file updates:

• Updated input 'chaotic':
    'github:chaotic-cx/nyx/49af1cfc2787e08814d3b8ce95693364cc86b4bf?narHash=sha256-rYVM0KsGb%2BzUScfLCHnyxkR%2BpoKOkH5VUKFzPxP1RcY%3D' (2024-12-19)
  → 'github:chaotic-cx/nyx/5694778dcfd69cc5dab9bd83c9eeb147ed3537e4?narHash=sha256-ZrvI%2B3uXL6Y9v1%2BxyNVPpMav0SYPi2ZwcmkaTyarN0E%3D' (2024-12-19)
• Updated input 'chaotic/home-manager':
    'github:nix-community/home-manager/83ecd50915a09dca928971139d3a102377a8d242?narHash=sha256-wNX3hsScqDdqKWOO87wETUEi7a/QlPVgpC/Lh5rFOuA%3D' (2024-12-16)
  → 'github:nix-community/home-manager/832920a60833533eaabcc93ab729801bf586fa0c?narHash=sha256-h/fdzqlCqSa2ZCIqtDc9kshCJm6kQIoKuO0MSSmAX4A%3D' (2024-12-19)
• Updated input 'disko':
    'github:nix-community/disko/0f31ad735e784315a22d9899d3ba24340ce64220?narHash=sha256-NghuiWXx6Q3gwLiudiNwDpYQ1CPEUK7J%2Bf9dWREN8KA%3D' (2024-12-12)
  → 'github:nix-community/disko/2ee76c861af3b895b3b104bae04777b61397485b?narHash=sha256-hk0roBX10j/hospoWIJIJj3i2skd7Oml6yKQBx7mTFk%3D' (2024-12-20)
• Updated input 'home-manager':
    'github:nix-community/home-manager/3066cc58f552421a2c5414e78407fa5603405b1e?narHash=sha256-e9YAMReFV1fDPcZLFC2pa4k/8TloSXeX0z2VysNMAoA%3D' (2024-12-12)
  → 'github:nix-community/home-manager/51160a097a850839b7eae7ef08d0d3e7e353dfc3?narHash=sha256-F7Z2tIJsUEhErpK0sGMep4xG/eTVuK2eBpvgh3cS2H8%3D' (2024-12-21)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a73246e2eef4c6ed172979932bc80e1404ba2d56?narHash=sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU%3D' (2024-12-09)
  → 'github:nixos/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
• Updated input 'nur':
    'github:nix-community/NUR/3e32d21cd67c4201bd69331e5a23610bb8fadf60?narHash=sha256-cd5Mk03c70j7FhpPat8zxy0DDBx/HCPw5HwAbil%2BScM%3D' (2024-12-13)
  → 'github:nix-community/NUR/661541aa489fc5a7f62cfb5a8ce1f348b49f9248?narHash=sha256-gZF5YvCFicj7K4/tlSNXIwkyv/8cQjuwkV5A8OKuT5M%3D' (2024-12-22)
• Updated input 'nur/nixpkgs':
    'github:nixos/nixpkgs/a73246e2eef4c6ed172979932bc80e1404ba2d56?narHash=sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU%3D' (2024-12-09)
  → 'github:nixos/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
• Updated input 'stylix':
    'github:danth/stylix/ccee633284cde8a9f825004e00dd84a31b10e6c6?narHash=sha256-72z7fZNeFtG%2BUWmbMn5by4K47HHBxk3JtV91D/qZEhg%3D' (2024-12-12)
  → 'github:danth/stylix/4f489c63932f014be856475154bf342f8a40f5ff?narHash=sha256-zYGz8vgtyha4TsrSUPmcfPAb0IlYADZy4KjeXI9Z%2Bu8%3D' (2024-12-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-22 00:54:05 -05:00
.github/workflows tree-wide: drop petalburg 2024-12-15 14:45:35 -05:00
_img README: update screenshot 2024-12-13 08:49:28 -05:00
common flake: add lanzaboote and systemd-boot modules; hosts: move bootloader settings to modules (#198) 2024-12-20 21:31:05 -05:00
disko reuse disko configs where possible 2024-09-23 23:59:07 -04:00
flake clean-install: prompt for host 2024-07-17 11:07:29 -04:00
homeManagerModules tree-wide: drop emacs 2024-12-21 12:17:22 -05:00
homes aly/firefox: update bookmarks 2024-12-19 08:12:37 -05:00
hosts flake: add lanzaboote and systemd-boot modules; hosts: move bootloader settings to modules (#198) 2024-12-20 21:31:05 -05:00
hwModules hw/gaming: apply ananicy rules to easyeffects 2024-12-20 11:21:51 -05:00
nixosModules kde: remove package exclusions 2024-12-19 11:18:47 -05:00
overlays overlays: removed tablet overlay due to outmoding by nixos/nixpkgs#361341 2024-12-20 21:44:21 -05:00
pkgs pkgs: remove bazznix packages 2024-12-06 18:14:07 -05:00
secrets secrets: rekey 2024-12-16 15:09:57 -05:00
userModules syncthing: update petalburg 2024-12-16 11:10:55 -05:00
.envrc flake: add devShelland direnv 2024-09-05 22:41:27 -04:00
.gitignore flake: add devShelland direnv 2024-09-05 22:41:27 -04:00
.gitlab-ci.yml code cleanup (#47) 2024-07-18 21:05:35 -04:00
flake.lock flake.lock: Update (#200) 2024-12-22 00:54:05 -05:00
flake.nix overlays: removed tablet overlay due to outmoding by nixos/nixpkgs#361341 2024-12-20 21:44:21 -05:00
LICENSE.md hosts: add READMEs (#50) 2024-07-20 19:41:51 -04:00
README.md README: update screenshot 2024-12-13 08:49:28 -05:00

nixcfg

My comprehensive NixOS flake for managing my laptop, desktop, and home lab environments.

NOTE: Some hosts and configuration options have migrated to alyraffauf/bazznix, my project to create a bazzite-like experience on NixOS.

Features

  • Hyprland: Dynamic tiling Wayland compositor and window manager.
  • Stylix: Auto-gnerated base16 themes for the whole desktop.
  • Encryption: Encrypted boot drives with Secure Boot and LUKS with TPM decryption.
  • Home Lab: Media, file sharing, and more, split between two PCs with efficient routing via reverse proxy.

Inputs

This flake takes a variety of upstream and third party flakes as inputs:

  • agenix: secrets storage and orchestration.
  • disko: declarative partitions and disk configuration.
  • home-manager: declarative dotfile and user package management.
  • hyprland: great dynamic tiling wayland compositor.
  • iio-hyprland: autorotate daemon for Hyprland.
  • lanzaboote: secure boot for NixOS.
  • nur: extra packages from the nix user repository.
  • stylix: system-wide color schemes and typography.

Outputs

  • homeManagerModules.aly: my home-manager config.
  • homeManagerModules.default: app modules + everything you need for a competent Hyprland desktop (and a few others).
  • homeManagerModules.dustin: my husband's home-manager config.
  • nixosModules.common: various common modules specific to my hosts.
  • nixosModules.nixos: opinionated desktop, app, and service options.
  • nixosModules.users: basic user configuration options.
  • overlays.default: adds every package output to nixpkgs.
  • overlays.tablet: tablet optimizations, mainly for electron apps.

In addition, this flake outputs NixOS configurations, home-manager configurations, and various hardware modules for all of my hosts and users.

Deploying to NixOS

Each hardware configuration is host-specific. If you fork this repository, add a host configuration for your own hardware. Secrets are encrypted with agenix and will not be available without the private decryption keys.

Enabling Flakes

While widely used and considered stable, flakes are still considered experimental. To enable Flakes, add the following lines to your configuration.nix and rebuild.

nix.settings.experimental-features = [ "nix-command" "flakes" ];

Alternatively, pass --experimental-features "nix-command flakes" to nix to temporarily use flakes.

Building Flake

In order to deploy this Flake on your host, run the following command:

sudo nixos-rebuild boot --flake github:alyraffauf/nixcfg#$HOSTNAME

Substitute $HOSTNAME for whichever hostname you have chosen. Reboot to apply the flake's configuration for the chosen host.

Installing from Live USB

If you want to install NixOS from this flake, run the following commands, ideally from a NixOS live environment, providing the hostname associated with a NixOS configuration specified in flake.nix when prompted.

sudo nix --experimental-features "nix-command flakes" run github:alyraffauf/nixcfg