DashNix/modules/programs/media.nix

56 lines
1.4 KiB
Nix

{ lib, options, config, pkgs, ... }: {
options.mods.media_packages = {
enable = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = "Default media packages";
};
additional_packages = lib.mkOption {
default = [ ];
example = [ pkgs.flatpak ];
type = lib.types.str;
description = ''
Additional media packages.
Will be installed regardless of default media packages are installed.
'';
};
};
config =
(lib.optionalAttrs (options?home.packages)
{
home.packages = config.mods.media_packages.additional_packages;
} // (lib.mkIf config.mods.media_packages.enable (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
];
})));
}