Opinionated user-agnostic NixOS configuration for PCs
Find a file
2026-03-12 17:11:51 +01:00
examples feat: make modules more modular 2026-02-16 22:33:23 +01:00
home feat(nushell): alias zip 2026-03-12 17:11:51 +01:00
system fixup! feat(boot): fido2 decryption 2026-03-10 22:32:02 +01:00
.gitignore feat(networking): setup using systemd-networkd 2025-11-16 20:42:39 +01:00
flake.lock chore(deps): flake update 2026-03-12 08:39:54 +01:00
flake.nix chore(deps): flake update 2026-03-12 08:39:54 +01:00
installation-iso.nix feat: make modules more modular 2026-02-16 22:33:23 +01:00
README.md docs(README): document FDE setup 2026-03-02 22:03:59 +01:00

Installation

Building Image

Build an installation image and copy it to a USB stick:

$ nix build .#nixosConfigurations.installationIso.config.system.build.isoImage
$ dd if=result of=/dev/<DEVICE> bs=4M status=progress

Configuration

The flake can be used to create a new flake containing a NixOS configuration by following the following example:

{
  description = "Example configuration for a NixOS installation";

  inputs = {
    plustik-pc-setup = {
      url = "git+https://code.tecks.eu/plustik/plustik-pc-setup?ref=main";
    };
  };

  outputs = { self, plustik-pc-setup, ... }: {
    nixosConfigurations = {
      "example" = plustik-pc-setup.lib.mkNixOSConfig {
        hostPlatform = "x86_64-linux";
        systemCustomModules = [
          ./examples/system.nix
        ];
        homeCustomModules = [
          ./examples/home.nix
        ];
      };
    };
  };
}

Setup FDE

Decryption using FIDO2-Keys

Assuming the hardware key is inserted and represented by file /dev/hidrawX:

# systemd-cryptenroll --fido2-device /dev/hidrawX /dev/nvme0n1p2