dotfiles.nix/home/programs.nix

120 lines
2.7 KiB
Nix

{ pkgs, lib, ... }: {
home.packages = builtins.attrValues ({
inherit (pkgs)
# GUI apps
discord-ptb obsidian slack 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
# 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"; };
};
# 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;
};
}