Both are official packages already on both workstations, started once by dex from an XDG autostart entry (the client's own, the package's). The modules declare the package, add no second start, own none of the apps' files, and give the mesh status, log, restart and check.
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
bluezis 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_connectandbluetooth_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). bluemanand its applet: thebluemanmodule'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-obexand the AUR terminal clientbluetuith-bin(with its-debug) on the laptop.