DashNix/modules/programs/media.nix

63 lines
1.4 KiB
Nix

{
lib,
options,
config,
pkgs,
...
}:
{
options.mods.media_packages = {
useBasePackages = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = "Default media packages (If disabled, only the additional packages will be installed)";
};
additionalPackages = lib.mkOption {
default = [ ];
example = [ pkgs.flatpak ];
type = with lib.types; listOf package;
description = ''
Additional media packages.
'';
};
};
config = (
lib.optionalAttrs (options ? home.packages) {
home.packages = config.mods.media_packages.additionalPackages;
}
// (lib.mkIf config.mods.media_packages.useBasePackages (
lib.optionalAttrs (options ? home.packages) {
home.packages = with pkgs; [
# base audio
pipewire
wireplumber
# audio control
playerctl
# images
imv
# videos
mpv
# pdf
zathura
evince
libreoffice-fresh
onlyoffice-bin
pdftk
pdfpc
polylux2pdfpc
# spotify
# video editing
kdenlive
# image creation
inkscape
gimp
krita
yt-dlp
];
programs.obs-studio.enable = true;
programs.obs-studio.plugins = with pkgs; [ obs-studio-plugins.obs-vaapi ];
}
))
);
}