Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nixos/wireplumber: fix systemwide bluetooth integration #297806

Merged

Conversation

andrevmatos
Copy link
Member

Description of changes

Currrently, trying to connect to a Bluetooth headset with systemWide Pipewire gives this error in bluetooth.service:

src/service.c:btd_service_connect() a2dp-sink profile connect failed for <bt_mac>: Protocol not available

Fix from https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3828#note_2270701
wireplumber<0.5 had this fix in place, but on its format, which got removed in #278760
This PR brings that back

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@andrevmatos andrevmatos requested a review from K900 March 21, 2024 19:27
@andrevmatos andrevmatos self-assigned this Mar 21, 2024
@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Mar 21, 2024
@K900
Copy link
Contributor

K900 commented Mar 21, 2024

It should have been unloaded automatically... I'll ask upstream.

@andrevmatos
Copy link
Member Author

May have todo with my system using startx/startplasma-wayland-from-terminal, instead of SDDM or other display manager? Either way, tested the fix and it works here

@K900
Copy link
Contributor

K900 commented Mar 21, 2024

That definitely shouldn't affect the system-wide service in any way.

@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 labels Mar 21, 2024
@andrevmatos
Copy link
Member Author

It shouldn't affect the service, but logind sees different seat types for both cases, and this may be affecting bluez's seat monitoring through logind. Either way, the line added here was recommended in the upstream repo, and fixes the issue here.

@andrevmatos
Copy link
Member Author

Meanwhile (for whoever may care), I've fixed it in my system like this:

services.pipewire.wireplumber.configPackages = [
  (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/59-systemwide-bluetooth.conf" ''
    wireplumber.profiles = {
      main = {
        monitor.bluez.seat-monitoring = disabled
      }
    }
  '')
];

@K900 K900 merged commit 176ee51 into NixOS:master Mar 22, 2024
22 checks passed
@andrevmatos andrevmatos deleted the nixos/wireplumber/fix_systemwide_bluetooth branch March 22, 2024 09:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants