Files
nixos-config/hosts/default.nix
T
jory f489259af9
CI / Flake check (aarch64-linux) (push) Failing after 20m53s
CI / Flake check (x86_64-linux) (push) Failing after 3m20s
CI / Pre-commit checks (x86_64-linux) (push) Failing after 2m44s
feat: Add fingerprint scanner support and modularize work configurations
- Add fingerprint.nix hardware module with TOD driver support
- Create separate laptop-work configuration with Cisco, Himmelblau, and MDATP work modules
- Move work-specific modules from shared to laptop-work profile
- Change work module enable defaults to false for better security-by-default
- Add MDATP support with enhanced modular structure
2026-07-19 10:21:03 +02:00

116 lines
3.0 KiB
Nix

{
self,
inputs,
...
}: let
# shorten paths
inherit (inputs.nixpkgs.lib) nixosSystem;
lib = inputs.nixpkgs.lib;
# Server uses its own pinned 24.05 nixpkgs (kept isolated from the laptop's unstable)
nixosSystem24 = inputs.nixos-24-05.lib.nixosSystem;
unstablePkgs = import inputs.nixpkgs-unstable {system = "x86_64-linux";};
mod = "${self}/system";
home = "${self}/home";
# get the basic config to build on top of
inherit (import "${self}/system") tty desktop laptop;
# get these into the module system
specialArgs = {inherit inputs self;};
# shared modules for all configurations (personal + work)
sharedModules = [
./aesthetic
"${mod}/services/gnome-services.nix"
"${mod}/core/limine.nix"
"${home}"
"${self}/work"
inputs.sops-nix.nixosModules.sops
];
in {
flake.nixosConfigurations = {
# TTY: desktop headless (no GUI)
tty = nixosSystem {
inherit specialArgs;
modules = tty ++ sharedModules;
};
# Desktop: desktop with GUI
desktop = nixosSystem {
inherit specialArgs;
modules = desktop ++ sharedModules;
};
# Laptop: laptop with GUI + battery + bluetooth
laptop = nixosSystem {
inherit specialArgs;
modules =
laptop
++ sharedModules
++ [
"${mod}/services/location.nix"
];
};
# Laptop UEFI: explicit UEFI boot mode
laptop-uefi = nixosSystem {
inherit specialArgs;
modules =
laptop
++ sharedModules
++ [
"${mod}/services/location.nix"
({ config, ... }: {
boot.loader.limine.bootMode = "uefi";
})
];
};
# Laptop BIOS: explicit BIOS boot mode
laptop-bios = nixosSystem {
inherit specialArgs;
modules =
laptop
++ sharedModules
++ [
"${mod}/services/location.nix"
({ config, ... }: {
boot.loader.limine.bootMode = "bios";
boot.loader.limine.biosDevice = "/dev/nvme0n1";
})
];
};
# Laptop work: laptop profile + work modules (himmelblau, cisco, mdatp)
laptop-work = nixosSystem {
inherit specialArgs;
modules =
laptop
++ sharedModules
++ [
"${mod}/services/location.nix"
{
work.cisco.enable = true;
work.himmelblau.enable = true;
work.mdatp.enable = true;
}
];
};
# Server: severijnse.eu (Hetzner) — fully isolated under servers/hetzner/.
# Uses nixos-24.05 + disko + sops-nix and does NOT inherit the laptop's shared modules.
hetzner = nixosSystem24 {
system = "x86_64-linux";
specialArgs = {
inherit inputs self unstablePkgs;
};
modules = [
inputs.disko.nixosModules.disko
inputs.sops-nix.nixosModules.sops
"${self}/servers/hetzner/hosts/hetzner/hardware-configuration.nix"
"${self}/servers/hetzner/hosts/hetzner/default.nix"
];
};
};
}