split off terminal utilities

This commit is contained in:
2026-04-22 18:45:00 -04:00
parent c3cc94a305
commit 1be21b6c52
7 changed files with 243 additions and 226 deletions

102
home/profiles/terminal.nix Normal file
View File

@@ -0,0 +1,102 @@
# Shared terminal-tools profile.
#
# The set of CLI tooling I want available on every machine I use:
# - mreow + yarn pick this up via home/profiles/no-gui.nix
# - muffin picks this up via hosts/muffin/home.nix
# - any non-NixOS machine picks it up via the homeConfigurations output in flake.nix
#
# Scope is intentionally narrow: the daily-driver shell (fish + helix + modern
# CLI replacements + git). No language toolchains, no hardware-specific admin
# tools, no GUI-adjacent utilities — those belong in profiles layered on top.
{
lib,
pkgs,
...
}:
{
imports = [
../progs/fish.nix
../progs/helix.nix
];
home.packages = with pkgs; [
# modern CLI replacements for POSIX basics
eza # ls
bat # cat
delta # diff viewer (also wired into git below)
dust # du
duf # df
gping # ping, with a graph
ripgrep # grep, respects .gitignore
fd # find
tldr # man, simpler
# system / process tools
htop
bottom
lsof
file
killall
unzip
tmux
wget
# network
dig
mtr
# text / data
jq
hexyl
tinyxxd
b3sum
typos
# media (handy from a shell, lightweight enough to be universal)
imagemagick
# universal dev-adjacent
git-crypt
hyperfine
# nix
nixfmt-tree
# shell greeter (invoked from fish's interactiveShellInit)
pfetch-rs
];
# Git: mechanical config + identity lives here so `git` works out of the box
# on every machine. Signing is opt-in via lib.mkDefault so machines without
# my GPG key can override `signing.signByDefault = false` without fighting
# priority.
programs.git = {
enable = true;
package = pkgs.git;
lfs.enable = true;
ignores = [ ".sisyphus" ];
settings = {
init.defaultBranch = "main";
push.autoSetupRemote = true;
user = {
name = "Simon Gardling";
email = "titaniumtown@proton.me";
};
};
signing = {
format = "openpgp";
key = lib.mkDefault "9AB28AC10ECE533D";
signByDefault = lib.mkDefault true;
};
};
# Pretty diff viewer, wired into git.
programs.delta = {
enable = true;
enableGitIntegration = true;
};
}