# 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` on both workstations, and its applet, which the window manager's configuration starts. That line is the `i3` module's to keep or drop. - `bluez-obex` and the AUR terminal client `bluetuith-bin` (with its `-debug`) on the laptop.