* Add a module to enable PulseAudio. It causes all ALSA applications
to be rerouted to PulseAudio. Note that this is distinct from the already existing module ‘services/audio/pulseaudio.nix’ that provides a system-wide PulseAudio daemon, which is usually not what you want. svn path=/nixos/trunk/; revision=27958
This commit is contained in:
parent
a1df35a590
commit
7bdaedb465
47
modules/config/pulseaudio.nix
Normal file
47
modules/config/pulseaudio.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
with pkgs.lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
hardware.pulseaudio.enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to enable the PulseAudio sound server.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
config = mkIf config.hardware.pulseaudio.enable {
|
||||||
|
|
||||||
|
environment.systemPackages =
|
||||||
|
[ pkgs.pulseaudio pkgs.alsaPlugins ];
|
||||||
|
|
||||||
|
environment.etc =
|
||||||
|
[ # Write an /etc/asound.conf that causes all ALSA applications to
|
||||||
|
# be re-routed to the PulseAudio server through ALSA's Pulse
|
||||||
|
# plugin.
|
||||||
|
{ target = "asound.conf";
|
||||||
|
source = pkgs.writeText "asound.conf"
|
||||||
|
''
|
||||||
|
pcm.!default {
|
||||||
|
type pulse
|
||||||
|
hint.description "Default Audio Device (via PulseAudio)"
|
||||||
|
}
|
||||||
|
ctl.!default {
|
||||||
|
type pulse
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Ensure that the ALSA Pulse plugin appears in ALSA's search path.
|
||||||
|
environment.pathsToLink = [ "lib/alsa-lib" ];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -7,6 +7,7 @@
|
||||||
./config/no-x-libs.nix
|
./config/no-x-libs.nix
|
||||||
./config/nsswitch.nix
|
./config/nsswitch.nix
|
||||||
./config/power-management.nix
|
./config/power-management.nix
|
||||||
|
./config/pulseaudio.nix
|
||||||
./config/shells.nix
|
./config/shells.nix
|
||||||
./config/swap.nix
|
./config/swap.nix
|
||||||
./config/system-path.nix
|
./config/system-path.nix
|
||||||
|
|
|
@ -117,6 +117,11 @@ in
|
||||||
# Phonon backends.
|
# Phonon backends.
|
||||||
pkgs.kde4.phonon_backend_gstreamer
|
pkgs.kde4.phonon_backend_gstreamer
|
||||||
pkgs.gst_all.gstPluginsBase
|
pkgs.gst_all.gstPluginsBase
|
||||||
|
pkgs.gst_all.gstPluginsGood
|
||||||
|
pkgs.gst_all.gstPluginsUgly
|
||||||
|
pkgs.gst_all.gstPluginsBad
|
||||||
|
pkgs.gst_all.gstFfmpeg # for mp3 playback
|
||||||
|
pkgs.gst_all.gstreamer # needed?
|
||||||
|
|
||||||
# Miscellaneous runtime dependencies.
|
# Miscellaneous runtime dependencies.
|
||||||
pkgs.kde4.qt4 # needed for qdbus
|
pkgs.kde4.qt4 # needed for qdbus
|
||||||
|
@ -138,6 +143,8 @@ in
|
||||||
services.hal = mkIf (!isKDE47) { enable = true; };
|
services.hal = mkIf (!isKDE47) { enable = true; };
|
||||||
services.udisks = mkIf isKDE47 { enable = true; };
|
services.udisks = mkIf isKDE47 { enable = true; };
|
||||||
services.upower = mkIf isKDE47 { enable = true; };
|
services.upower = mkIf isKDE47 { enable = true; };
|
||||||
|
|
||||||
|
hardware.pulseaudio = mkIf isKDE47 { enable = true; };
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue