{ inputs, config, lib, pkgs, outputs,... }: let # Disko setup fsType = "btrfs"; # one of ext4 or btrfs. Use btrfs if using impermanence dev = "/dev/vda"; # depends on target hardware encrypted = true; # currrently only applies to btrfs btrfsMountDevice = if encrypted then "/dev/mapper/crypted" else "/dev/root_vg/root"; user = "sam"; in { imports = [ # Create users for this host ../common/users/${user} # Disk configuration inputs.disko.nixosModules.disko (import ../common/disks { device = dev; fsType = fsType; encrypted = encrypted; }) # Impermanence inputs.impermanence.nixosModules.impermanence (import ../common/disks/btrfs-impermanence.nix { btrfsMountDevice = btrfsMountDevice; lib = lib; }) # Import core options ./hardware-configuration.nix ../common/core # Import optional options ../common/optional/persistence.nix ../common/optional/pipewire.nix ../common/optional/hyprland.nix ../common/optional/displayManager/sddm.nix ../common/optional/openssh.nix ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; timeout = 3; }; }; environment.persistence."/persist" = { hideMounts = true; users.${user} = { directories = [ "Sync" "Keep" ".ssh" ".mozilla" ".local" ]; }; }; networking = { hostName = "semita"; networkmanager.enable = true; enableIPv6 = false; }; services.libinput.enable = true; }