{ inputs, lib, pkgs, hostname, stateVersion, username, desktop, system, ... }: { 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 ./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 ./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 # terminal multiplexer rbw # CLI app for Bitwarden nfs-utils # nfs network share tools nixfmt # Formatting nix output dconf # Required for stylix ripgrep # Better grep 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 fx # Pretty print JSON nodejs # Required by fx eza # like ls, but prettier cryptsetup # used to open LUKS devices parted # Disk partitioner / Formatter screen # Terminal screen manager e2fsprogs # disk format utilities, like mkfs.ext4 bat # Like cat, but with syntax highlighting openssl # Used to generate certs, random strings, etc tree # CLI directory display software nmap # network mapping / discovery software busybox # General linux commands, nslookup, dig, etc sshpass # ssh password helper cbonsai # ncurses bonsai tree busybox # Linux utilities ethtool # Ethernet troubleshooting fd # alternative to "Find" lazygit # Decent Git TUI ]; # 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; }