120 lines
3.2 KiB
Nix
120 lines
3.2 KiB
Nix
{
|
|
lib,
|
|
options,
|
|
config,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
options.mods.home_packages = {
|
|
noDefaultPackages = lib.mkOption {
|
|
default = false;
|
|
example = true;
|
|
type = lib.types.bool;
|
|
description = "No default packages (will use additional_packages only)";
|
|
};
|
|
enable = lib.mkOption {
|
|
default = true;
|
|
example = false;
|
|
type = lib.types.bool;
|
|
description = "Home manager packages";
|
|
};
|
|
additional_packages = lib.mkOption {
|
|
default = [ ];
|
|
example = [ pkgs.flatpak ];
|
|
type = lib.types.str;
|
|
description = ''
|
|
Additional Home manager packages.
|
|
Will be installed regardless of default home manager packages are installed.
|
|
'';
|
|
};
|
|
matrixClient = lib.mkOption {
|
|
default = pkgs.nheko;
|
|
example = null;
|
|
type = with lib.types; nullOr package;
|
|
description = "The matrix client";
|
|
};
|
|
vesktop = lib.mkOption {
|
|
default = true;
|
|
example = false;
|
|
type = lib.types.bool;
|
|
description = "Adds the vesktop discord client";
|
|
};
|
|
ncspot = lib.mkOption {
|
|
default = false;
|
|
example = true;
|
|
type = lib.types.bool;
|
|
description = "Adds the ncspot spotify client";
|
|
};
|
|
nextcloudClient = lib.mkOption {
|
|
default = false;
|
|
example = true;
|
|
type = lib.types.bool;
|
|
description = "Adds the full desktop nextcloud client (the nextcloud module in dashnix only provides the cli tool)";
|
|
};
|
|
mailClient = lib.mkOption {
|
|
default = pkgs.thunderbird;
|
|
example = null;
|
|
type = with lib.types; nullOr package;
|
|
description = "The email client";
|
|
};
|
|
};
|
|
config = (
|
|
lib.mkIf config.mods.home_packages.noDefaultPackages (
|
|
lib.optionalAttrs (options ? home.packages) {
|
|
home.packages = config.mods.home_packages.additional_packages;
|
|
}
|
|
)
|
|
// (lib.optionalAttrs (options ? home.packages) {
|
|
home.packages =
|
|
with pkgs;
|
|
[
|
|
# TODO add fcp once fixed....
|
|
(lib.mkIf config.mods.home_packages.ncspot ncspot)
|
|
(lib.mkIf config.mods.home_packages.vesktop vesktop)
|
|
(lib.mkIf config.mods.home_packages.nextcloudClient nextcloud-client)
|
|
(lib.mkIf (options ? config.mods.home_pakcage.matrixClient) config.mods.home_packages.matrixClient)
|
|
(lib.mkIf (options ? config.mods.home_packages.mailClient) config.mods.home_packages.mailClient)
|
|
adw-gtk3
|
|
bat
|
|
brave
|
|
brightnessctl
|
|
dbus
|
|
fastfetch
|
|
fd
|
|
ffmpeg
|
|
flake-checker
|
|
gnome-keyring
|
|
gnutar
|
|
greetd.regreet
|
|
killall
|
|
kitty
|
|
libnotify
|
|
lsd
|
|
networkmanager
|
|
nh
|
|
nix-index
|
|
playerctl
|
|
poppler_utils
|
|
pulseaudio
|
|
qt5ct
|
|
qt6ct
|
|
ripgrep
|
|
rm-improved
|
|
system-config-printer
|
|
xournalpp
|
|
zenith
|
|
zoxide
|
|
]
|
|
++ config.mods.home_packages.additional_packages;
|
|
|
|
xdg.configFile."direnv/direnv.toml".source = (pkgs.formats.toml { }).generate "direnv" {
|
|
global = {
|
|
warn_timeout = "-1s";
|
|
};
|
|
};
|
|
|
|
})
|
|
);
|
|
}
|