dotfiles.nix/home/programs.nix

125 lines
2.8 KiB
Nix

{ pkgs, lib, ... }: {
# Programs + packages with configuration --------------------------------------------------------------- {{{
programs = {
# a nicer cat
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.bat.enable
bat = {
enable = true;
config = {
style = "auto";
};
};
# Direnv, load and unload environment variables depending on the current directory.
# https://direnv.net
# https://rycee.gitlab.io/home-manager/options.html#opt-programs.direnv.enable
direnv = {
enable = true;
nix-direnv.enable = true;
};
nix-index = {
enable = true;
enableFishIntegration = true;
};
ssh = {
enable = true;
matchBlocks."*".extraOptions = lib.optionalAttrs pkgs.stdenv.isDarwin {
UseKeychain = "yes";
AddKeysToAgent = "yes";
};
};
# vscode
vscode = {
enable = true;
# extensions = [ pijul-vscode ];
};
zoxide = {
enable = true;
enableFishIntegration = true;
};
};
# }}}
# Other packages ----------------------------------------------------------------------------- {{{
home.packages = builtins.attrValues ({
inherit (pkgs)
# GUI apps
discord-ptb
element-desktop
lagrange
lapce
obsidian
slack
zoom-us
# System
# lightweight session management
abduco
# archive tool
atool
# fancy version of `top` with ASCII graphs
bottom
curl
# fancy version of `du`
du-dust
# fancy version of `ls`
exa
# fancy version of `find`
fd
# wrapper for `ssh` that better at not dropping connections
mosh
# fancy version of `ps`
procs
# pipe progress viewer
pv
# command line file encryption
rage
thefuck
# extract RAR archives
unrar
wget
# extract XZ archives
xz
# Dev stuff
# source code line counter
cloc
# command line tools for digitalocean
doctl
# command line tools for fly.io
flyctl
# benchmarking tool
hyperfine
# json processor
jq
# alternative to `git`
pijul
# better version of `grep`
ripgrep
# rust implementation of `tldr`
tealdeer
# reimplementation of `httpie` in rust
xh
# Useful nix related tools
# adding/managing alternative binary caches hosted by Cachix
cachix
# run software from nixpkgs without installing it
comma
nixpkgs-fmt
nix-prefetch-git
nix-tree
# nix language server
nil
;
} // lib.optionalAttrs pkgs.stdenv.isDarwin {
inherit (pkgs)
# useful macOS CLI commands
m-cli
# see /overlays/colors.nix
is-dark-mode
;
});
# }}}
}