Opinionated user-agnostic NixOS configuration for PCs
Find a file
2026-04-15 22:05:42 +02:00
examples chore(deps): update flake inputs 2026-04-09 22:32:52 +02:00
home feat(cli): install gptfdisk 2026-04-15 22:05:42 +02:00
system chore(de): rm unused hyprland 2026-04-10 20:25:40 +02:00
.gitignore feat(networking): setup using systemd-networkd 2025-11-16 20:42:39 +01:00
flake.lock chore(deps): update flake inputs 2026-04-09 22:32:52 +02:00
flake.nix feat(cli): add module common_tooling 2026-04-10 21:28:54 +02: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-29 21:34:04 +02: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