diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index fe86ca2c2f3a..59e0a65152d5 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -31,6 +31,10 @@ Users can use it by `services.displayManager.ly.enable` and config it by `services.displayManager.ly.settings` to generate `/etc/ly/config.ini` +- The default sound server for most graphical sessions has been switched from PulseAudio to PipeWire. + Users that want to keep PulseAudio will want to set `services.pipewire.enable = false;` and `hardware.pulseaudio.enable = true;`. + There is currently no plan to fully deprecate and remove PulseAudio, however, PipeWire should generally be preferred for new installs. + ## New Modules {#sec-release-24.11-new-modules} - [TaskChampion Sync-Server](https://github.com/GothenburgBitFactory/taskchampion-sync-server), a [Taskwariror 3](https://taskwarrior.org/docs/upgrade-3/) sync server, replacing Taskwarrior 2's sync server named [`taskserver`](https://github.com/GothenburgBitFactory/taskserver). diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix index 60df3987b4c0..7f7ab9ede47e 100644 --- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix +++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix @@ -32,9 +32,6 @@ with lib; # there is no power management backend such as upower). powerManagement.enable = true; - # Enable sound in graphical iso's. - hardware.pulseaudio.enable = true; - # VM guest additions to improve host-guest interaction services.spice-vdagentd.enable = true; services.qemuGuest.enable = true; diff --git a/nixos/modules/profiles/graphical.nix b/nixos/modules/profiles/graphical.nix index ae8b0895a5ac..f96b11b35367 100644 --- a/nixos/modules/profiles/graphical.nix +++ b/nixos/modules/profiles/graphical.nix @@ -14,8 +14,5 @@ libinput.enable = true; # for touchpad support on many laptops }; - # Enable sound in virtualbox appliances. - hardware.pulseaudio.enable = true; - environment.systemPackages = [ pkgs.mesa-demos pkgs.firefox ]; } diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index 2ee464dc22d3..92e6f4ccaeb1 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -196,8 +196,9 @@ in { programs.gamescope.enable = lib.mkDefault cfg.gamescopeSession.enable; services.displayManager.sessionPackages = lib.mkIf cfg.gamescopeSession.enable [ gamescopeSessionFile ]; - # optionally enable 32bit pulseaudio support if pulseaudio is enabled + # enable 32bit pulseaudio/pipewire support if needed hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; + services.pipewire.alsa.support32Bit = config.services.pipewire.alsa.enable; hardware.steam-hardware.enable = true; diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix index b486dd6b30b4..151bdc42c725 100644 --- a/nixos/modules/services/desktop-managers/lomiri.nix +++ b/nixos/modules/services/desktop-managers/lomiri.nix @@ -50,7 +50,6 @@ in { }; }; - hardware.pulseaudio.enable = lib.mkDefault true; networking.networkmanager.enable = lib.mkDefault true; systemd.packages = with pkgs.lomiri; [ diff --git a/nixos/modules/services/misc/graphical-desktop.nix b/nixos/modules/services/misc/graphical-desktop.nix index 0b5ef033e38b..7f1e9b39210c 100644 --- a/nixos/modules/services/misc/graphical-desktop.nix +++ b/nixos/modules/services/misc/graphical-desktop.nix @@ -55,6 +55,12 @@ in services.speechd.enable = lib.mkDefault true; + services.pipewire = { + enable = lib.mkDefault true; + pulse.enable = lib.mkDefault true; + alsa.enable = lib.mkDefault true; + }; + systemd.defaultUnit = lib.mkIf (xcfg.autorun || dmcfg.enable) "graphical.target"; xdg = { diff --git a/nixos/modules/services/x11/desktop-managers/budgie.nix b/nixos/modules/services/x11/desktop-managers/budgie.nix index 8e36b8cc3947..42a828bcbcbc 100644 --- a/nixos/modules/services/x11/desktop-managers/budgie.nix +++ b/nixos/modules/services/x11/desktop-managers/budgie.nix @@ -204,7 +204,6 @@ in { programs.nm-applet.indicator = true; # Budgie uses AppIndicators. hardware.bluetooth.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Bluetooth panel. - hardware.pulseaudio.enable = mkDefault true; # for Budgie's Status Indicator and BCC's Sound panel. xdg.portal.enable = mkDefault true; # for BCC's Applications panel. xdg.portal.extraPortals = with pkgs; [ diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix index 70fa4f0f3a5a..33373c18a4e9 100644 --- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix +++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix @@ -97,7 +97,6 @@ in # Default services services.blueman.enable = mkDefault (notExcluded pkgs.blueman); hardware.bluetooth.enable = mkDefault true; - hardware.pulseaudio.enable = mkDefault true; security.polkit.enable = true; services.accounts-daemon.enable = true; services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); diff --git a/nixos/modules/services/x11/desktop-managers/deepin.nix b/nixos/modules/services/x11/desktop-managers/deepin.nix index 1151178a8824..a202e153231b 100644 --- a/nixos/modules/services/x11/desktop-managers/deepin.nix +++ b/nixos/modules/services/x11/desktop-managers/deepin.nix @@ -47,7 +47,6 @@ in ''; hardware.bluetooth.enable = mkDefault true; - hardware.pulseaudio.enable = mkDefault true; security.polkit.enable = true; services.deepin.dde-daemon.enable = mkForce true; diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index e07700469dfb..bbd47a382e18 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -255,7 +255,6 @@ in (lib.mkIf serviceCfg.core-os-services.enable { hardware.bluetooth.enable = mkDefault true; - hardware.pulseaudio.enable = mkDefault true; programs.dconf.enable = true; security.polkit.enable = true; services.accounts-daemon.enable = true; diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index 55d5c2cb292d..fc5fb4d0b53d 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -130,7 +130,6 @@ in # Default services hardware.bluetooth.enable = mkDefault true; - hardware.pulseaudio.enable = mkDefault true; security.polkit.enable = true; services.accounts-daemon.enable = true; services.bamf.enable = true; diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index 0092a1f3693b..1893eb5d7f9a 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -380,7 +380,6 @@ in xdg.portal.extraPortals = [ pkgs.plasma5Packages.xdg-desktop-portal-kde ]; xdg.portal.configPackages = mkDefault [ pkgs.plasma5Packages.xdg-desktop-portal-kde ]; # xdg-desktop-portal-kde expects PipeWire to be running. - # This does not, by default, replace PulseAudio. services.pipewire.enable = mkDefault true; # Update the start menu for each user that is currently logged in @@ -476,7 +475,7 @@ in { # The user interface breaks without pulse assertion = config.hardware.pulseaudio.enable || (config.services.pipewire.enable && config.services.pipewire.pulse.enable); - message = "Plasma Mobile requires pulseaudio."; + message = "Plasma Mobile requires a Pulseaudio compatible sound server."; } ]; @@ -512,7 +511,6 @@ in # The following services are needed or the UI is broken. hardware.bluetooth.enable = true; - hardware.pulseaudio.enable = true; networking.networkmanager.enable = true; # Required for autorotate hardware.sensor.iio.enable = lib.mkDefault true; diff --git a/nixos/tests/ayatana-indicators.nix b/nixos/tests/ayatana-indicators.nix index 2d2a9f7167a7..72d172d3885d 100644 --- a/nixos/tests/ayatana-indicators.nix +++ b/nixos/tests/ayatana-indicators.nix @@ -50,8 +50,6 @@ in services.accounts-daemon.enable = true; # messages - hardware.pulseaudio.enable = true; # sound - # Lomiri-ish setup for Lomiri indicators # TODO move into a Lomiri module, once the package set is far enough for the DE to start diff --git a/nixos/tests/enlightenment.nix b/nixos/tests/enlightenment.nix index b82f09a07ed8..ba917e18c09f 100644 --- a/nixos/tests/enlightenment.nix +++ b/nixos/tests/enlightenment.nix @@ -21,7 +21,6 @@ import ./make-test-python.nix ({ pkgs, ...} : user = "alice"; }; }; - hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then environment.systemPackages = [ pkgs.xdotool ]; services.acpid.enable = true; services.connman.enable = true; diff --git a/nixos/tests/mate.nix b/nixos/tests/mate.nix index 1252ec43cf3d..0cadd6d0d5bf 100644 --- a/nixos/tests/mate.nix +++ b/nixos/tests/mate.nix @@ -21,10 +21,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { }; services.xserver.desktopManager.mate.enable = true; - - # Silence log spam due to no sound drivers loaded: - # ALSA lib confmisc.c:855:(parse_card) cannot find card '0' - hardware.pulseaudio.enable = true; }; enableOCR = true; diff --git a/nixos/tests/plasma5.nix b/nixos/tests/plasma5.nix index 1bff37981da3..b4e10581219c 100644 --- a/nixos/tests/plasma5.nix +++ b/nixos/tests/plasma5.nix @@ -19,7 +19,6 @@ import ./make-test-python.nix ({ pkgs, ...} : enable = true; user = "alice"; }; - hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then }; testScript = { nodes, ... }: let diff --git a/nixos/tests/xfce.nix b/nixos/tests/xfce.nix index d97f07d75271..1cef8daf3d49 100644 --- a/nixos/tests/xfce.nix +++ b/nixos/tests/xfce.nix @@ -19,9 +19,6 @@ import ./make-test-python.nix ({ pkgs, ...} : { services.xserver.desktopManager.xfce.enable = true; environment.systemPackages = [ pkgs.xfce.xfce4-whiskermenu-plugin ]; - - hardware.pulseaudio.enable = true; # needed for the factl test, /dev/snd/* exists without them but udev doesn't care then - }; enableOCR = true;