diff --git a/modules/pipewire.nix b/modules/pipewire.nix index ac41d53..2fd8f7b 100644 --- a/modules/pipewire.nix +++ b/modules/pipewire.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, modulesPath, pkgs, ... }: let bluetoothSupport = config.sbruder.full; in @@ -14,6 +14,21 @@ lib.mkIf config.sbruder.gui.enable { }; }; + # not exposed in NixOS module + environment.etc."pipewire/media-session.d/bluez-hardware.conf".source = lib.mkForce ((pkgs.formats.json { }).generate "bluez-hardware.conf" ( + let + defaults = (builtins.fromJSON (builtins.readFile "${modulesPath}/services/desktops/pipewire/bluez-hardware.conf.json")); + in + defaults // { + "bluez5.features.device" = defaults."bluez5.features.device" ++ [ + # Sennheiser HD 4.50BTNC has unreliable hardware volume control (too + # frequent changes cause it to not apply the changes) and sometimes + # crashes (disconnects and shuts off) after too many changes. + { name = "HD 4.50BTNC"; no-features = [ "hw-volume" ]; } + ]; + } + )); + environment.systemPackages = with pkgs; [ pavucontrol pulseaudio # pacmd and pactl