{ lib, config, pkgs, hostname, stateVersion, username, desktop, gpu, inputs, platform, theme, ... }: { imports = [ # Modules inputs.disko.nixosModules.disko # Services ./common/services/openssh.nix ./common/services/promtail.nix ./common/services/fail2ban.nix ./common/services/telegraf.nix ./common/services/tailscale.nix ./common/services/gnupg-agent.nix ./common/services/opensnitch.nix # CLI Software ./common/software/cli/weechat.nix # NixOS Modules ./common/modules/fonts.nix # Font Configs ./common/modules/networking.nix # Initial Networking configs ./common/modules/nixos.nix # NixOS related items ./users/${username} ./hosts/${hostname} ] ++ lib.optional (builtins.isString desktop) ./common/desktops/${desktop}; # List packages installed in system profile environment.systemPackages = with pkgs; [ sbctl # Secureboot Control wget # WebGet killall # Killall curl # Curl - For web requests neofetch # system information viewer rsync # copy/sync git # git! duf # replacement / prettier UI for df ncdu # ncurses style browser for du/dust du-dust # better UI for 'du" home-manager # manage dotfiles btop # like htop, but prettier iftop # interface top - network usage nload # network load - Network usage graphs iotop # I/O top viewer - disk r/w, etc sops # manage secrets gnupg # GNU Privacy Guard jq # Pretty print JSON eza # like ls, but prettier cryptsetup # used to open LUKS devices parted # Disk partitioner / Formatter screen # Terminal screen manager alejandra # Nix code formatter nixfmt # Nix code formatter e2fsprogs # disk format utilities, like mkfs.ext4 bat # Like cat, but with syntax highlighting ]; # 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"; }; system.stateVersion = stateVersion; }