users/infinidoge: refactor packages into module

This commit is contained in:
Infinidoge 2025-05-05 13:00:42 -04:00
parent ab7d61ae5b
commit f6df6d8d6f
Signed by: Infinidoge
SSH key fingerprint: SHA256:oAMyvotlNFraMmZmr+p6AxnNfW/GioTs1pOn3V4tQ7A
2 changed files with 122 additions and 59 deletions

View file

@ -22,22 +22,21 @@ in
./config
];
programs = {
git = {
userEmail = "infinidoge@inx.moe";
userName = "Infinidoge";
extraConfig = {
gpg.format = "ssh";
commit.gpgsign = true;
user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
};
};
firefox = {
enable = main.info.graphical;
package = pkgs.firefox-devedition;
programs.git = {
userEmail = "infinidoge@inx.moe";
userName = "Infinidoge";
extraConfig = {
gpg.format = "ssh";
commit.gpgsign = true;
user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519.pub";
};
};
programs.firefox = {
enable = main.info.graphical;
package = pkgs.firefox-devedition;
};
services.unison = {
enable = true;
pairs = {
@ -68,52 +67,6 @@ in
POP_SMTP_PASSWORD = "$(cat ${secrets.smtp-personal})";
UNISON = "$HOME/.local/state/unison";
};
home.packages =
with pkgs;
flatten [
bitwarden-cli
bsd-finger
ncdu
peaclock
pop
qrencode
reflex
unison
(lib.optionals (!main.universe.minimal.enable) [
gramma
jmtpfs
packwiz
presenterm
toot
])
(ifGraphical [
speedcrunch
(discord-canary.override {
withVencord = true;
withOpenASAR = true;
withTTS = false;
})
])
(lib.optionals (!main.universe.minimal.enable && main.info.graphical) [
(discord.override {
withVencord = true;
withOpenASAR = true;
withTTS = false;
})
schildichat-desktop
signal-desktop
teams-for-linux
thunderbird
tor-browser
bitwarden
qbittorrent
sqlitebrowser
])
];
};
systemd.user.tmpfiles.users.infinidoge.rules = mkIf config.universe.media.enable [

View file

@ -0,0 +1,110 @@
{
config,
main,
lib,
pkgs,
...
}:
let
inherit (lib) flip;
inherit (lib.our) mkBoolOpt' packageListOpt;
packagesOpt = kind: flip mkBoolOpt' "Package Set: ${kind}";
full = !main.universe.minimal.enable;
cfg = config.universe.programs;
ifGraphical = lib.optionals main.info.graphical;
ifGraphical' = lib.optional main.info.graphical;
addPackageLists = lib.mapAttrs (
name: value:
value
// {
minimal = packageListOpt;
full = packageListOpt;
}
);
in
{
options.universe.programs = (
addPackageLists {
utility.enable = packagesOpt "Utility" true;
writing.enable = packagesOpt "Writing" true;
communication.enable = packagesOpt "Communication" true;
internet.enable = packagesOpt "Internet" true;
}
);
config = {
universe.programs = with pkgs; {
utility.minimal = [
bitwarden-cli
bsd-finger
ncdu
peaclock
pop
qrencode
reflex
unison
(ifGraphical [
speedcrunch
])
];
utility.full = [
jmtpfs
packwiz
presenterm
toot
(ifGraphical [
bitwarden
qbittorrent
sqlitebrowser
])
];
writing.full = [
gramma
];
communication.minimal = [
(ifGraphical [
(discord-canary.override {
withVencord = true;
withOpenASAR = true;
withTTS = false;
})
thunderbird
])
];
communication.full = [
(ifGraphical [
(discord.override {
withVencord = true;
withOpenASAR = true;
withTTS = false;
})
schildichat-desktop
signal-desktop
teams-for-linux
])
];
internet.full = [
(ifGraphical [
tor-browser
])
];
};
home.packages = lib.concatMap (
v:
(lib.optionals (v ? minimal && v.enable) v.minimal)
++ (lib.optionals (v ? full && full && v.enable) v.full)
) (lib.attrValues cfg);
};
}