{ pkgs, lib, ... }: { home.packages = builtins.attrValues ({ inherit (pkgs) # GUI apps discord-ptb obsidian rectangle slack utm zoom-us # system tools curl wget # `tmux` session alternative abduco # archive tool atool # `top` alternative with ASCII graphs bottom # `ncdu` alternative diskonaut # `dig` alternative. dogs _can_ look up dogdns # `du` alternative du-dust # `find` alternative fd # `ping` with a graph gping # `ps` alternative procs # pipe progress viewer pv # command line file encryption rage # `sed` alternative for _batch file_ edits sad # `sed` alternative for _stream_ edits sd # backups for the truly paranoid tarsnap # terminal color support testing terminal-colors # (La)TeX alternative typst # extract RAR archives unrar # extract XZ archives xz # `tmux` multiplexing/layout alternative zellij # dev platforms # command line tools for fly.io flyctl # command line tools for netlify netlify-cli # dev tools # session recording asciinema # benchmarking tool hyperfine # task runner just # source code line counter tokei # reimplementation of `httpie` in rust xh # useful nix related tools nix-prefetch-git nix-tree # adding/managing alternative binary caches hosted by Cachix cachix # run software from nixpkgs without installing it comma # nix language servers nil nixd; } // lib.optionalAttrs pkgs.stdenv.isDarwin { inherit (pkgs) # useful macOS CLI commands m-cli; }); programs = { # `cat` with wings bat = { enable = true; config = { style = "auto"; }; }; # multi-shell / multi-command argument completion daemon carapace.enable = true; # load and unload environment variables depending on the current directory direnv = { enable = true; nix-direnv.enable = true; }; # fork of `exa`, an `ls` alternative eza = { enable = true; enableAliases = true; icons = true; git = true; extraOptions = [ "--group-directories-first" ]; }; jq.enable = true; man = { enable = true; generateCaches = true; }; nix-index.enable = true; nushell.enable = true; # `grep` alternative ripgrep.enable = true; # cli help, `tldr` implementation tealdeer = { enable = true; settings = { display.use_pager = true; updates.auto_update = true; updates.auto_update_interval_hours = 24 * 7; }; }; # `z` alternative zoxide.enable = true; }; }