# SPDX-FileCopyrightText: 2025 Ethan Reece # # SPDX-License-Identifier: MIT # https://gitlab.com/hmajid2301/nixicle # TODO: make builds optimized for hardware features # TODO: Add psi-notify for memory related issues # TODO: Enable secure boot # TODO: Enable impermanence { config, flakeConfig, inputs, lib, module-name, pkgs, system, ... }: let users = { utd_cs4485 = rec { username = "utd_cs4485"; homeDirectory = "/home/${username}"; }; root = rec { username = "root"; homeDirectory = "/root"; }; }; in { imports = [ inputs.disko.nixosModules.disko inputs.impermanence.nixosModules.impermanence inputs.lanzaboote.nixosModules.lanzaboote ../base.nix ../disko-config.nix ./hardware-configuration.nix ]; flakeSettings.graphical = true; home-manager = { extraSpecialArgs = { inherit inputs system flakeConfig; }; users.${users.utd_cs4485.username} = with users.utd_cs4485; { imports = [ ../../home-manager/${username}/home.nix { home = { inherit username homeDirectory; }; } ]; }; users.root = with users.root; { imports = [ ../../home-manager/personal/root.nix { home = { inherit username homeDirectory; }; } ]; }; }; users = { users.${users.utd_cs4485.username} = with users.utd_cs4485; { extraGroups = [ "wheel" "networkmanager" "aria2" ]; shell = pkgs.nushell; isNormalUser = true; initialPassword = username; }; }; networking.hostName = module-name; system.stateVersion = "23.11"; }