Files
mesh-catalog/modules/bluetooth

bluetooth

Bluetooth on the two workstations (novox/hq research 027/02, to-be 42 phase 2 step 9).

Owns

what where
the Bluetooth stack and its daemon package bluez
bluetoothctl, which the tools speak through package bluez-utils
the daemon, running and enabled bluetooth.service

All official. /etc/bluetooth/main.conf is the package's file, unchanged on both workstations (every setting commented out). The module states nothing in it, so it declares nothing there.

Improves

  • The stack is declared, not a dependency of something else. On both workstations bluez is installed only as a dependency. Removing the applet that pulled it in would have left it an orphan for the next clean-up to take, and Bluetooth with it.
  • An owner for the daemon, running and enabled on both today with nothing recording why.
  • Headphones from the mesh. bluetooth_connect and bluetooth_devices (with battery) answer from any machine, without the applet.

Tools

All answer JSON; (r) reads, (a) acts. They run as the operator account. bluez's bus policy lets the account act; if it ever refuses (AccessDenied), the act is repeated through sudo -n. An act whose output says it failed (Failed to …, org.bluez.Error…, not available) is an error, whatever bluetoothctl's exit status.

tool what
bluetooth_controller (r) address, name, powered, discoverable, pairable, discovering
bluetooth_power (r/a) read, or switch the controller on or off
bluetooth_devices (r) all, paired, connected or trusted devices: kind, paired, bonded, trusted, blocked, connected, battery where reported
bluetooth_scan (r) discover for 1 to 15 s (default 8); the unpaired devices found, strongest signal first
bluetooth_connect / bluetooth_disconnect (a) one device; connect waits up to 15 s
bluetooth_trust (a) trust, or untrust
bluetooth_pair (a) pair with an agent that confirms nothing (headphones, speakers), then trust. A device that shows a code is paired from the desktop
bluetooth_remove (a) forget a device

What changes when it is assigned

Nothing on disk on either workstation: both packages are installed, and the service is enabled and running. bluez becomes explicitly the mesh's.

Leaves as found

  • The paired devices and their keys under /var/lib/bluetooth (bluez's state).
  • blueman and its applet: the blueman module's, which relies on this one for the stack and declares none of its packages. The applet starts from the package's XDG autostart entry.
  • bluez-obex and the AUR terminal client bluetuith-bin (with its -debug) on the laptop.