73 lines
2.1 KiB
Nix
73 lines
2.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
# The baseline interactive toolset as one deliberate bundle.
|
|
let
|
|
cfg = config.modules.toolkit;
|
|
user = config.user.name;
|
|
in
|
|
{
|
|
options.modules.toolkit.enable =
|
|
lib.mkEnableOption "the baseline interactive environment — fish, tmux, nvim, git, and direnv — as one unit";
|
|
|
|
# Each piece is turned on at default priority, so a host can still override any one of them.
|
|
config = lib.mkIf cfg.enable {
|
|
home-manager.users.${user}.home.packages = with pkgs; [
|
|
eza
|
|
wget
|
|
];
|
|
|
|
registry.shell-shortcut.${config.networking.hostName} = {
|
|
ls = {
|
|
command = "eza -alg --color=always --group-directories-first --icons=always";
|
|
abbreviation = false;
|
|
};
|
|
la = {
|
|
command = "eza -a --color=always --group-directories-first --icons=always";
|
|
abbreviation = false;
|
|
};
|
|
ll = {
|
|
command = "eza -lg --color=always --group-directories-first --icons=always";
|
|
abbreviation = false;
|
|
};
|
|
lt = {
|
|
command = "eza -aT -I '.git' --color=always --group-directories-first --icons=always";
|
|
abbreviation = false;
|
|
};
|
|
"l." = {
|
|
command = "eza -a | grep -e '^\\.'";
|
|
abbreviation = false;
|
|
};
|
|
|
|
# Walk up the tree.
|
|
".." = "cd ..";
|
|
"..." = "cd ../..";
|
|
"...." = "cd ../../..";
|
|
|
|
cp = "cp -v";
|
|
tarnow = "tar -acf ";
|
|
untar = "tar -zxvf ";
|
|
wget = "wget -c ";
|
|
grep = "grep --color=auto";
|
|
fgrep = "fgrep --color=auto";
|
|
egrep = "egrep --color=auto";
|
|
jctl = "journalctl -p 3 -xb";
|
|
|
|
# Rebuild the system, and reclaim disk from old generations.
|
|
update = "sudo nixos-rebuild switch --flake .#${config.networking.hostName}";
|
|
cleanup = "sudo nix-collect-garbage -d";
|
|
};
|
|
|
|
modules.fish.enable = lib.mkDefault true;
|
|
# fish is also the login shell, so the bundled environment is what a shell drops into.
|
|
modules.fish.defaultShell = lib.mkDefault true;
|
|
modules.tmux.enable = lib.mkDefault true;
|
|
modules.nvim.enable = lib.mkDefault true;
|
|
modules.git.enable = lib.mkDefault true;
|
|
modules.direnv.enable = lib.mkDefault true;
|
|
};
|
|
}
|