{ config, lib, pkgs, ... }: let nathan = config.nathan; in with lib; { config = mkMerge [ (mkIf nathan.programs.utils.core { environment.systemPackages = with pkgs; [ # Basic command line utilities wget tmux nano unzip any-nix-shell htop # Rust rewrites of common shell utilities starship exa bat fd sd du-dust ripgrep ripgrep-all hyperfine bottom dogdns duf # User friendly cut choose # Man but terse tealdeer # For nslookup dnsutils # Mosh for better high-latency ssh mosh # PV for viewing pipes pv ]; }) (mkIf nathan.programs.utils.productivity { environment.systemPackages = with pkgs; [ # Feh image viewer feh tokei # Spell check hunspell hunspellDicts.en-us # CLI Markdown renderer glow # Command line file manager broot # Much better curl httpie # CLI spreadsheets visidata # Cheatsheet manager cheat # Ping with a graph gping # Pandoc for documentation pandoc ]; }) (mkIf nathan.programs.utils.binfmt { boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; }) ]; }