dotfiles.nix/home/programs.nix

132 lines
2.9 KiB
Nix

{ pkgs, lib, ... }:
{
home.packages = builtins.attrValues (
{
inherit (pkgs)
# 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
nixfmt-rfc-style
# 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;
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;
};
}