# Default commandline utility packages. # These are installed on all systems for essential functionality. # Organized by category for maintainability. { config, pkgs, ... }: { environment.systemPackages = with pkgs; [ # === CORE SYSTEM UTILITIES === # Essential command-line tools for basic system operations bc # Command-line calculator coreutils # Basic file, shell and text manipulation utilities file # Determine file types findutils # File and directory searching utilities gawk # GNU implementation of awk tree # Show ASCII formatted directory tree which # Locate commands in PATH # === TEXT EDITORS AND VIEWERS === # Basic text editing and viewing capabilities gnused # GNU stream editor (sed) nano # Simple, user-friendly text editor # === VERSION CONTROL === # Source code management git # Distributed version control system # === SEARCH AND FILTERING === # Tools for finding and processing text/files gnugrep # Pattern matching and text search ripgrep # Fast text search tool (rg) # === FILE MANAGERS === # Interactive file management mc # Midnight Commander - text-based file manager # === NETWORK UTILITIES === # Network diagnostics and file transfer curl # Command-line HTTP client nmap # Network exploration and security auditing openssl # Cryptographic toolkit and SSL/TLS library wget # File downloader # === SYNC AND BACKUP === # File synchronization and backup tools rsync # Fast, versatile file copying tool # === FILE UTILITIES === # File manipulation and organization jq # JSON processor ncdu # Disk usage analyzer with ncurses interface pv # Progress viewer for data through pipes renameutils # Bulk file renaming utilities # === COMPRESSION AND ARCHIVES === # Support for various compression formats lzip # Lzip compression pigz # Parallel gzip implementation unzip # Extract ZIP archives xz # XZ compression utilities zip # Create ZIP archives zstd # Zstandard compression # === SYSTEM MONITORING === # Performance monitoring and system information bmon # Network bandwidth monitor htop # Interactive process viewer lsof # List open files and network connections # === TERMINAL AND SHELL === # Terminal functionality and shell tools bash # Bourne Again Shell bash-completion # Programmable completion for bash bashInteractive # Interactive bash shell rxvt-unicode-unwrapped.terminfo # Terminal info for urxvt screen # Terminal multiplexer # === DEVELOPMENT TOOLS === # Development and debugging utilities xxd # Hex dump utility # === HARDWARE UTILITIES === # Hardware information and diagnostics pciutils # PCI bus utilities (lspci) smartmontools # Hard drive health monitoring # === DISK AND STORAGE === # Storage testing and management disk-filltest # Disk testing utility ] ++ (if pkgs.stdenv.isLinux then [ # === LINUX-SPECIFIC PACKAGES === # Packages that are only available/useful on Linux systems # --- KERNEL AND SYSTEM --- config.boot.kernelPackages.cpupower # CPU frequency utilities # --- NETWORK ADMINISTRATION --- iptables # Firewall administration ethtool # Ethernet device configuration # --- HARDWARE MANAGEMENT --- dmidecode # DMI/SMBIOS information hdparm # Hard disk parameter tuning lshw # Hardware information tool usbutils # USB device utilities (lsusb) # --- PROCESS AND SYSTEM MONITORING --- iotop # I/O monitoring by process psmisc # Additional process utilities (killall, pstree) # --- COMPRESSION (Linux-specific) --- unrar # Extract RAR archives (non-free) # --- FILE SYSTEM UTILITIES --- inotify-tools # File system event monitoring rclone # Cloud storage sync tool sshfs # Mount remote filesystems over SSH ] else [ ]) ++ (if pkgs.stdenv.isDarwin then [ # === MACOS-SPECIFIC PACKAGES === # Packages specifically for macOS systems # Currently empty - add macOS-specific tools here as needed # Examples: darwin.apple_sdk.frameworks.Security ] else []); }