Laptop, desktop, and home lab flake featuring Hyprland, Sway, declarative containers, a reverse proxy, and more.
Find a file
Aly Raffauf 84aaf94210
Some checks are pending
flakehub / flakehub-publish (push) Waiting to run
git-mirror / gitlab-sync (push) Waiting to run
nix-build / default-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 / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run
nix-drybuild / fallarbor-drybuild (push) Waiting to run
nix-drybuild / lavaridge-drybuild (push) Waiting to run
nix-drybuild / mauville-drybuild (push) Waiting to run
nix-drybuild / petalburg-drybuild (push) Waiting to run
nix-drybuild / rustboro-drybuild (push) Waiting to run
aly: udpate transmission remote config
2024-07-17 17:01:47 -04:00
.github/workflows github: don't run ci on README changes 2024-07-15 10:21:34 -04:00
_img README: update screenshot 2024-07-03 16:27:34 -04:00
baseModules base: use plymouth at boot 2024-07-16 16:02:28 -04:00
flake clean-install: prompt for host 2024-07-17 11:07:29 -04:00
homeManagerModules home: add backblaze module (#38) 2024-07-16 13:36:39 -04:00
homes aly: add transmission remote (#45) 2024-07-17 13:42:59 -04:00
hosts mauville: simplify initrd sshd setup 2024-07-17 11:33:51 -04:00
nixosModules migrate mkOption to mkPackageOption 2024-07-12 20:50:01 -04:00
secrets aly: udpate transmission remote config 2024-07-17 17:01:47 -04:00
userModules users: login from phone 2024-07-17 11:35:19 -04:00
.gitignore add .gitignore 2024-04-02 17:48:27 -04:00
.gitlab-ci.yml gitlab: fix repo name 2024-07-10 21:00:11 -04:00
flake.lock flake: bump raffauflabs 2024-07-17 01:03:08 -04:00
flake.nix use hyprland from nixpkgs (#16) 2024-07-10 18:28:43 -04:00
LICENSE.md Create LICENSE.md 2024-03-09 11:58:37 -05:00
README.md clean-install: clean up docs 2024-07-17 11:08:02 -04:00

nixcfg

NixOS flake for all mine + my family's hosts, including modules for Hyprland, Sway, GNOME, and more.

Inputs

This flake takes a variety of inputs, first and foremost my other flakes:

  • nixhw: opinionated set of generic (AMD, Intel, Laptop, SSD) and specific (Framework 13, Yoga 9i, Thinkpad T440p) hardware configuration modules for NixOS.
  • raffauflabs: everything (containers, services, nginx, etc) that makes my home lab a home lab.

As well as upstream third-party projects that I use for various tasks:

  • 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.
  • nixvim: helpful neovim modules.
  • nur: extra packages from the nix user repository.

Outputs

  • homeManagerModules.default: app modules + everything you need for a competent Hyprland desktop (and a few others).
  • nixosModules.base: opinionated basic system configuration.
  • nixosModules.nixos: opinionated desktop, app, and service modules.
  • nixosModules.users: basic user configuration for three users.

In addition, this flake outputs NixOS configuration and home-manager configurations for all of my hosts and users, respectively.

Rice

Deploying to NixOS

🔴 Do not deploy this flake unmodified to your machine. It won't work. This is my own NixOS and home-manager flake for my personal devices. 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

🔴 This will erase your computer's disk as specified by the host configuration, installing a fresh copy of NixOS. Backup first!

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