Bluetooth: Difference between revisions

Bjn (talk | contribs)
m Fix typo "overskirde" -> "overskride"
Mach50 (talk | contribs)
Add warning about laptops that use combo wifi bluetooth cards. Add `powerOnBoot` option to the setup section code.
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
==Setup==
==Setup==
To enable support for Bluetooth devices, amend your system configuration as follows and apply changes:
To enable support for Bluetooth devices, amend your system configuration as follows and apply changes:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|3=hardware.bluetooth = {
hardware.bluetooth.enable = true;
  enable = true;
</nowiki>}}
  powerOnBoot = false;
};|name=/etc/nixos/configuration.nix|lang=nix}}{{Warning|Some laptops use combo bluetooth wifi cards that might reduce wifi quality when both bluetooth and wifi are enabled. If you encounter degraded network quality after setup this might be the cause.}}
 
==Usage==
==Usage==
In order to use Bluetooth devices, they must be paired with your NixOS machine. Heavier [[:Category:Desktop_environment|desktop environments]] will usually provide a Bluetooth management GUI which you can use to pair devices.
In order to use Bluetooth devices, they must be paired with your NixOS machine. Heavier [[:Category:Desktop_environment|desktop environments]] will usually provide a Bluetooth management GUI which you can use to pair devices.
Line 53: Line 55:
To make these buttons usable with media players supporting the dbus-based [https://specifications.freedesktop.org/mpris-spec/latest/ MPRIS] standard,
To make these buttons usable with media players supporting the dbus-based [https://specifications.freedesktop.org/mpris-spec/latest/ MPRIS] standard,
one can use <code>mpris-proxy</code> that is part of bluez package.
one can use <code>mpris-proxy</code> that is part of bluez package.
The following snippet can be used in [[Home Manager]] to start this program as a daemon:
It can be used as a daemon in [[Home Manager]]:<syntaxhighlight lang="nix">
services.mpris-proxy.enable = true;
</syntaxhighlight>For versions preceding Home Manager 21.05, the following snippet can be used:


<syntaxHighlight lang="nix">
<syntaxHighlight lang="nix">
Line 63: Line 67:
};
};
</syntaxHighlight>
</syntaxHighlight>
Or, starting with Home Manager 21.05, enable the <code>mpris-proxy</code> service.


Some headsets (such as Sony's WH-1000XM series) also support AVRCP directly and as such <code>mpris-proxy</code> is not required for this functionality, as headset button presses will register as media key presses. If you are using a WM or a desktop environment which doesn't support media keys, you will have to set up keybindigs yourself; the keys are typically called <code>XF86AudioPlay</code>, <code>XF86AudioPause</code>, <code>XF86AudioNext</code>, and <code>XF86AudioPrev</code>. However, note that some functionality, such as "take off headphones to pause" on WH-1000XM4/5 requires two-way AVRCP communication to work properly, so `mpris-proxy` is still recommended if you wish to use it. It also may or may not help with Bluetooth multipoint.
Some headsets (such as Sony's WH-1000XM series) also support AVRCP directly and as such <code>mpris-proxy</code> is not required for this functionality, as headset button presses will register as media key presses. If you are using a WM or a desktop environment which doesn't support media keys, you will have to set up keybindigs yourself; the keys are typically called <code>XF86AudioPlay</code>, <code>XF86AudioPause</code>, <code>XF86AudioNext</code>, and <code>XF86AudioPrev</code>. However, note that some functionality, such as "take off headphones to pause" on WH-1000XM4/5 requires two-way AVRCP communication to work properly, so `mpris-proxy` is still recommended if you wish to use it. It also may or may not help with Bluetooth multipoint.