Refactor additional packages

This commit is contained in:
DashieTM 2024-09-08 17:30:48 +02:00
parent 2e90a3b7a1
commit b83ccc7bfe
3 changed files with 161 additions and 86 deletions

View file

@ -26,16 +26,30 @@
Note that these are installed even if base packages is disabled, e.g. you can also use this as the only packages to install. Note that these are installed even if base packages is disabled, e.g. you can also use this as the only packages to install.
''; '';
}; };
special_programs = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special program configuration to be added which require programs.something notation.
'';
};
special_services = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special services configuration to be added which require an services.something notation.
'';
};
}; };
}; };
config = ( config = lib.optionalAttrs (options ? environment.systemPackages) {
lib.optionalAttrs (options ? environment.systemPackages) { environment.systemPackages =
environment.systemPackages = config.mods.base_packages.additional_packages; if config.mods.base_packages.enable then
} with pkgs;
// (lib.mkIf config.mods.base_packages.enable ( [
lib.optionalAttrs (options ? environment.systemPackages) {
environment.systemPackages = with pkgs; [
adwaita-icon-theme adwaita-icon-theme
dbus dbus
dconf dconf
@ -58,10 +72,15 @@
seahorse seahorse
upower upower
xorg.xkbutils xorg.xkbutils
]; ]
++ config.mods.base_packages.additional_packages
else
config.mods.base_packages.additional_packages;
gtk.iconCache.enable = false; gtk.iconCache.enable = false;
services = { services =
if config.mods.base_packages.enable then
{
upower.enable = true; upower.enable = true;
dbus = { dbus = {
enable = true; enable = true;
@ -72,9 +91,14 @@
nssmdns4 = true; nssmdns4 = true;
openFirewall = true; openFirewall = true;
}; };
}; }
// config.mods.base_packages.special_services
else
config.mods.base_packages.special_services;
programs = { programs =
if config.mods.base_packages.enable then
{
nix-ld = { nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [ libraries = with pkgs; [
@ -94,8 +118,10 @@
}; };
ssh.startAgent = true; ssh.startAgent = true;
gnupg.agent.enable = true; gnupg.agent.enable = true;
}; }
} // config.mods.base_packages.special_programs
)) else
); config.mods.base_packages.special_programs;
};
} }

View file

@ -22,6 +22,22 @@
Will be installed regardless of default home manager packages are installed. Will be installed regardless of default home manager packages are installed.
''; '';
}; };
special_programs = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special program configuration to be added which require programs.something notation.
'';
};
special_services = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special services configuration to be added which require an services.something notation.
'';
};
matrixClient = lib.mkOption { matrixClient = lib.mkOption {
default = pkgs.nheko; default = pkgs.nheko;
example = null; example = null;
@ -59,62 +75,68 @@
description = "Additional browser -> second to firefox, the only installed browser if firefox is disabled"; description = "Additional browser -> second to firefox, the only installed browser if firefox is disabled";
}; };
}; };
config = config = lib.optionalAttrs (options ? home.packages) {
(lib.optionalAttrs (options ? home.packages) { home.packages =
home.packages = config.mods.home_packages.additional_packages; if config.mods.home_packages.useDefaultPackages then
}) with pkgs;
// lib.mkIf config.mods.home_packages.useDefaultPackages ( [
lib.optionalAttrs (options ? home.packages) { # TODO add fcp once fixed....
home.packages = (lib.mkIf config.mods.home_packages.ncspot ncspot)
with pkgs; (lib.mkIf config.mods.home_packages.vesktop vesktop)
[ (lib.mkIf config.mods.home_packages.nextcloudClient nextcloud-client)
# TODO add fcp once fixed.... (lib.mkIf (!isNull config.mods.home_packages.matrixClient) config.mods.home_packages.matrixClient)
(lib.mkIf config.mods.home_packages.ncspot ncspot) (lib.mkIf (!isNull config.mods.home_packages.mailClient) config.mods.home_packages.mailClient)
(lib.mkIf config.mods.home_packages.vesktop vesktop) (lib.mkIf (
(lib.mkIf config.mods.home_packages.nextcloudClient nextcloud-client) !isNull config.mods.home_packages.additionalBrowser
(lib.mkIf (!isNull config.mods.home_packages.matrixClient) config.mods.home_packages.matrixClient) ) config.mods.home_packages.additionalBrowser)
(lib.mkIf (!isNull config.mods.home_packages.mailClient) config.mods.home_packages.mailClient) adw-gtk3
(lib.mkIf ( bat
!isNull config.mods.home_packages.additionalBrowser brightnessctl
) config.mods.home_packages.additionalBrowser) dbus
adw-gtk3 fastfetch
bat fd
brightnessctl ffmpeg
dbus flake-checker
fastfetch gnome-keyring
fd gnutar
ffmpeg greetd.regreet
flake-checker killall
gnome-keyring kitty
gnutar libnotify
greetd.regreet lsd
killall networkmanager
kitty nh
libnotify nix-index
lsd playerctl
networkmanager poppler_utils
nh pulseaudio
nix-index qt5ct
playerctl qt6ct
poppler_utils ripgrep
pulseaudio rm-improved
qt5ct system-config-printer
qt6ct xournalpp
ripgrep zenith
rm-improved zoxide
system-config-printer ]
xournalpp ++ config.mods.home_packages.additional_packages
zenith else
zoxide config.mods.home_packages.additional_packages;
]
++ config.mods.home_packages.additional_packages;
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml { }).generate "direnv" { xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml { }).generate "direnv" {
global = { global = {
warn_timeout = "-1s"; warn_timeout = "-1s";
}; };
}; };
programs =
} if config.mods.home_packages.useDefaultPackages then
); config.mods.home_packages.special_programs
else
config.mods.home_packages.special_programs;
services =
if config.mods.home_packages.useDefaultPackages then
config.mods.home_packages.special_services
else
config.mods.home_packages.special_services;
};
} }

View file

@ -21,14 +21,28 @@
Additional media packages. Additional media packages.
''; '';
}; };
special_programs = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special program configuration to be added which require programs.something notation.
'';
};
special_services = lib.mkOption {
default = { };
example = { };
type = with lib.types; attrsOf anything;
description = ''
special services configuration to be added which require an services.something notation.
'';
};
}; };
config = ( config = lib.optionalAttrs (options ? home.packages) {
lib.optionalAttrs (options ? home.packages) { home.packages =
home.packages = config.mods.media.additionalPackages; if config.mods.media.useBasePackages then
} with pkgs;
// (lib.mkIf config.mods.media.useBasePackages ( [
lib.optionalAttrs (options ? home.packages) {
home.packages = with pkgs; [
# base audio # base audio
pipewire pipewire
wireplumber wireplumber
@ -54,10 +68,23 @@
gimp gimp
krita krita
yt-dlp yt-dlp
]; ]
programs.obs-studio.enable = true; ++ config.mods.media.additionalPackages
programs.obs-studio.plugins = with pkgs; [ obs-studio-plugins.obs-vaapi ]; else
} config.mods.media.additionalPackages;
)) programs =
); if config.mods.media.useBasePackages then
{
obs-studio.enable = true;
obs-studio.plugins = with pkgs; [ obs-studio-plugins.obs-vaapi ];
}
// config.mods.media.special_programs
else
config.mods.media.special_programs;
services =
if config.mods.media.useBasePackages then
config.mods.media.special_services
else
config.mods.media.special_services;
};
} }