diff --git a/hosts/common/programs/default.nix b/hosts/common/programs/default.nix index d1865184..88f41fda 100644 --- a/hosts/common/programs/default.nix +++ b/hosts/common/programs/default.nix @@ -69,6 +69,7 @@ ./obsidian.nix ./offlineimap.nix ./open-in-mpv.nix + ./pipewire.nix ./planify.nix ./portfolio-filemanager.nix ./playerctl.nix diff --git a/hosts/common/programs/pipewire.nix b/hosts/common/programs/pipewire.nix new file mode 100644 index 00000000..0d23a921 --- /dev/null +++ b/hosts/common/programs/pipewire.nix @@ -0,0 +1,18 @@ +# administer with pw-cli, pw-mon, pw-top commands +{ config, lib, ... }: +let + cfg = config.sane.programs.pipewire; +in +{ + services.pipewire = lib.mkIf cfg.enabled { + enable = true; + package = cfg.package; + alsa.enable = true; + alsa.support32Bit = true; # ?? + # emulate pulseaudio for legacy apps (e.g. sxmo-utils) + pulse.enable = true; + # TODO: try: + # socketActivation = false; + }; + systemd.user.services."pipewire".wantedBy = lib.optionals cfg.enabled [ "graphical-session.target" ]; +} diff --git a/hosts/common/programs/sway/default.nix b/hosts/common/programs/sway/default.nix index 29966e86..4fd9fd5c 100644 --- a/hosts/common/programs/sway/default.nix +++ b/hosts/common/programs/sway/default.nix @@ -109,6 +109,7 @@ in "fuzzel" # "gnome.gnome-bluetooth" # XXX(2023/05/14): broken # "gnome.gnome-control-center" # XXX(2023/06/28): depends on webkitgtk4_1 + "pipewire" "playerctl" # for waybar & particularly to have playerctld running "pulsemixer" # for volume controls "splatmoji" # used by sway config @@ -211,17 +212,6 @@ in }); }; - # unlike other DEs, sway configures no audio stack - # administer with pw-cli, pw-mon, pw-top commands - services.pipewire = lib.mkIf cfg.enabled { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; # ?? - # emulate pulseaudio for legacy apps (e.g. sxmo-utils) - pulse.enable = true; - }; - systemd.user.services."pipewire".wantedBy = lib.optionals cfg.enabled [ "graphical-session.target" ]; - # rtkit/RealtimeKit: allow applications which want realtime audio (e.g. Dino? Pulseaudio server?) to request it. # this might require more configuration (e.g. polkit-related) to work exactly as desired. # - readme outlines requirements: