2025-05-07 10:22:05 -07:00
|
|
|
{
|
|
|
|
inputs,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
2025-05-08 00:19:14 -07:00
|
|
|
host,
|
2025-05-07 10:22:05 -07:00
|
|
|
...
|
2025-05-08 00:19:14 -07:00
|
|
|
}: let
|
|
|
|
hostServer = false;
|
|
|
|
in {
|
2025-05-07 10:22:05 -07:00
|
|
|
home = {
|
|
|
|
stateVersion = "23.05"; # Please read the comment before changing.
|
2025-05-08 00:19:14 -07:00
|
|
|
packages = with pkgs; let
|
|
|
|
# packages to always install
|
|
|
|
all = [
|
|
|
|
ffmpeg
|
|
|
|
ripgrep
|
2025-05-08 17:23:50 -07:00
|
|
|
uv
|
2025-05-08 00:19:14 -07:00
|
|
|
];
|
|
|
|
# packages to install for desktop environments (non-server)
|
|
|
|
desktop = [
|
|
|
|
];
|
|
|
|
# packages to install on all servers
|
|
|
|
server = [];
|
|
|
|
# packages to install on macOS desktops
|
|
|
|
darwin = [
|
|
|
|
raycast
|
|
|
|
];
|
|
|
|
# packages to install on linux desktops
|
|
|
|
linux = [
|
|
|
|
reaper # TODO: why does this break on macOS
|
|
|
|
];
|
|
|
|
in
|
|
|
|
all
|
|
|
|
++ (
|
|
|
|
if host.darwin
|
|
|
|
then darwin
|
|
|
|
else linux
|
|
|
|
)
|
|
|
|
++ (
|
|
|
|
if hostServer
|
|
|
|
then server
|
|
|
|
else desktop
|
|
|
|
);
|
2025-05-07 10:22:05 -07:00
|
|
|
};
|
|
|
|
programs = {
|
|
|
|
# sort-lines:start
|
2025-05-08 00:19:14 -07:00
|
|
|
bat.enable = true;
|
|
|
|
btop.enable = true;
|
|
|
|
fd.enable = true;
|
2025-05-07 10:22:05 -07:00
|
|
|
hyfetch.enable = true;
|
|
|
|
zsh.enable = true;
|
|
|
|
# sort-lines:end
|
|
|
|
|
|
|
|
# use a git-specific email
|
|
|
|
git.userEmail = "git@paperclover.net";
|
2025-05-08 00:19:14 -07:00
|
|
|
|
|
|
|
ssh = {
|
|
|
|
enable = true;
|
|
|
|
matchBlocks = rec {
|
|
|
|
zenith = {
|
|
|
|
user = "clo";
|
|
|
|
port = 222;
|
|
|
|
};
|
2025-05-08 16:52:46 -07:00
|
|
|
"nas.paperclover.net" = lib.mkIf zenith;
|
2025-05-08 00:19:14 -07:00
|
|
|
};
|
|
|
|
};
|
2025-05-07 10:22:05 -07:00
|
|
|
};
|
|
|
|
}
|