{ lib, config, pkgs, ... }: { hardware.bluetooth = { enable = true; # Disable bluetooth on startup to save battery powerOnBoot = false; package = pkgs.bluez-experimental; # Disable useless SIM Access Profile plugin disabledPlugins = [ "sap" ]; settings = { General = { # Enables experimental features and interfaces. # Makes BlueZ Battery Provider available Experimental = true; }; }; }; services.blueman.enable = true; services.pipewire.wireplumber.configPackages = [ # https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/bluetooth.html (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/10-bluez.conf" '' monitor.bluez.properties = { bluez5.enable-hw-volume = true bluez5.enable-msbc = false bluez5.enable-sbc-xq = true bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ] } '') ]; }