{ lib, inputs, pkgs, hostname, stateVersion, username, desktop, system, ... }: { imports = [ # Modules inputs.disko.nixosModules.disko # Services ./common/services/openssh.nix ./common/services/fail2ban.nix # NixOS Modules ./common/modules/networking.nix # Initial Networking configs ./common/modules/nixos.nix # NixOS related items ./common/modules/remote-builders.nix # Add remote builders ./users/${username} ./hosts/${hostname} ] ++ lib.optional (builtins.isString desktop) ./common/desktops/${desktop}; # List packages installed in system profile environment.systemPackages = with pkgs; [ tmux dconf ripgrep sbctl wget killall curl rsync git bat duf ncdu du-dust btop iftop nload iotop sops gnupg cryptsetup parted screen sshpass fd eza fish ]; programs.fish.enable = true; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; # https://github.com/NixOS/nixpkgs/issues/180175#issuecomment-1658731959 systemd.services.NetworkManager-wait-online = { serviceConfig = { ExecStart = [ "" "${pkgs.networkmanager}/bin/nm-online -q" ]; }; }; system.stateVersion = stateVersion; nixpkgs.hostPlatform = system; }