nixos/kde5: refine Phonon backend options

This commit is contained in:
Thomas Tuegel 2015-10-17 10:47:04 -05:00
parent 5d4950a02c
commit 2386bd7c61

View File

@ -8,33 +8,6 @@ let
cfg = xcfg.desktopManager.kde5; cfg = xcfg.desktopManager.kde5;
xorg = pkgs.xorg; xorg = pkgs.xorg;
phononBackends = {
gstreamer = [
pkgs.phonon_backend_gstreamer
pkgs.gst_all.gstreamer
pkgs.gst_all.gstPluginsBase
pkgs.gst_all.gstPluginsGood
pkgs.gst_all.gstPluginsUgly
pkgs.gst_all.gstPluginsBad
pkgs.gst_all.gstFfmpeg # for mp3 playback
pkgs.phonon_qt5_backend_gstreamer
pkgs.gst_all_1.gstreamer
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-libav # for mp3 playback
];
vlc = [
pkgs.phonon_qt5_backend_vlc
pkgs.phonon_backend_vlc
];
};
phononBackendPackages = flip concatMap cfg.phononBackends
(name: attrByPath [name] (throw "unknown phonon backend `${name}'") phononBackends);
kf5 = pkgs.kf5_stable; kf5 = pkgs.kf5_stable;
plasma5 = pkgs.plasma5_stable; plasma5 = pkgs.plasma5_stable;
kdeApps = pkgs.kdeApps_stable; kdeApps = pkgs.kdeApps_stable;
@ -51,14 +24,24 @@ in
description = "Enable the Plasma 5 (KDE 5) desktop environment."; description = "Enable the Plasma 5 (KDE 5) desktop environment.";
}; };
phononBackends = mkOption { phonon = {
type = types.listOf types.str;
default = ["gstreamer"]; gstreamer = {
example = ["gstreamer" "vlc"]; enable = mkOption {
description = '' type = types.bool;
Phonon backends to use in KDE. Only the VLC and GStreamer backends are default = true;
available. The GStreamer backend is preferred by upstream. description = "Enable the GStreamer Phonon backend (recommended).";
''; };
};
vlc = {
enable = mkOption {
type = types.bool;
default = false;
description = "Enable the VLC Phonon backend.";
};
};
}; };
}; };
@ -126,7 +109,28 @@ in
++ lib.optional config.networking.networkmanager.enable plasma5.plasma-nm ++ lib.optional config.networking.networkmanager.enable plasma5.plasma-nm
++ lib.optional config.hardware.pulseaudio.enable plasma5.plasma-pa ++ lib.optional config.hardware.pulseaudio.enable plasma5.plasma-pa
++ lib.optional config.powerManagement.enable plasma5.powerdevil ++ lib.optional config.powerManagement.enable plasma5.powerdevil
++ phononBackendPackages; ++ lib.optionals cfg.phonon.gstreamer.enable
[
pkgs.phonon_backend_gstreamer
pkgs.gst_all.gstreamer
pkgs.gst_all.gstPluginsBase
pkgs.gst_all.gstPluginsGood
pkgs.gst_all.gstPluginsUgly
pkgs.gst_all.gstPluginsBad
pkgs.gst_all.gstFfmpeg # for mp3 playback
pkgs.phonon_qt5_backend_gstreamer
pkgs.gst_all_1.gstreamer
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-libav # for mp3 playback
]
++ lib.optionals cfg.phonon.vlc.enable
[
pkgs.phonon_qt5_backend_vlc
pkgs.phonon_backend_vlc
];
environment.pathsToLink = [ "/share" ]; environment.pathsToLink = [ "/share" ];
@ -136,7 +140,7 @@ in
}; };
environment.profileRelativeEnvVars = environment.profileRelativeEnvVars =
mkIf (lib.elem "gstreamer" cfg.phononBackends) mkIf cfg.phonon.gstreamer.enable
{ {
GST_PLUGIN_SYSTEM_PATH = [ "/lib/gstreamer-0.10" ]; GST_PLUGIN_SYSTEM_PATH = [ "/lib/gstreamer-0.10" ];
GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ]; GST_PLUGIN_SYSTEM_PATH_1_0 = [ "/lib/gstreamer-1.0" ];