{ config, inputs, outputs, pkgs, ... }: { imports = [ ./locale.nix ./nix.nix ./shells.nix ./zsh.nix ]; documentation.dev.enable = true; documentation.man.enable = true; # generate a handy list of all currently installed packages with versions at /etc/current-system-packages environment.etc."current-system-packages".text = let packages = builtins.map (p: "${p.name}") config.environment.systemPackages; sortedUnique = builtins.sort builtins.lessThan (pkgs.lib.lists.unique packages); formatted = builtins.concatStringsSep "\n" sortedUnique; in formatted; environment.systemPackages = with pkgs; [ acl age bash bc bind binutils bzip2 colordiff conntrack-tools coreutils cpio curl diffutils dig dmidecode ethtool file findutils fping git gnugrep gnupatch gnused gnutar gptfdisk gzip iproute2 iputils jq less lshw lsof lvm2 moreutils nano netcat-openbsd nettools nix-index nmap ntfs3g nvd oath-toolkit openldap openssl parted patchelf pciutils procps psmisc pv pwgen qemu_kvm recode rsync sg3_utils socat sops sqlite ssh-to-age ssh-to-pgp stoken strace sysstat tcpdump traceroute tree tshark unixtools.xxd unrar unzip usbutils util-linux vim wdiff wget whois wireguard-tools xz zip zstd ]; hardware.enableRedistributableFirmware = true; programs.atop.enable = true; programs.gnupg.agent.enable = true; programs.iftop.enable = true; programs.mtr.enable = true; programs.tmux.enable = true; programs.zsh.enable = true; }