BluezAgent: Keep pairing confirmations actionable - #3393
Conversation
|
|
This is a design decision by cinnamon to move/hide notifications to the applet after a fixed time. It's still there and actionable if you click on it in the tray. |
|
Hmm I see, that was far from clear to me that I could still access the notification somewhere. |
|
I don't see this being merged and I also doubt Cinnamon will change this behaviour. Pairing/adding new devices should be done in a dedicated wizard, like blueman did before. Then you can show all the relevant details, choices etc in a single window. I wanted to bring it back for a while but if someone want to work on this that would be great. |
|
After investigating Cinnamon’s notification handling, I think there may be a smaller Blueman-side solution than introducing a persistent GTK dialog. Blueman first displays a “Connected” notification for the temporary pairing connection. The actionable confirmation is queued behind it: The non-actionable banner delays the confirmation by about four seconds. Cinnamon then shows the confirmation for only about four seconds before moving it into the notification tray. A focused solution could be:
This should address the main usability problem with a small, standards-based Blueman change. I can revise and test the PR using this approach if the maintainers prefer it. |
|
You can disable the ConnectionNotifier plugin in the plugin-dialog. Does this make things work better? edit: you can set the urgency hint on the Notification class, |
|
Yeah, but my point is to try to make the user experience easier out of the box for everybody without having to change settings. I'm an IT guy and it still took me couple of minutes to understand why I couldn't get my keyboard pair easily. |
Also, suppressing would mean losing the notification as of now, as there is no other trigger than the |



Summary
RequestConfirmationcallbacks, which block pairing until the user respondsProblem
RequestConfirmationcurrently uses a desktop notification when the notificationserver advertises action support. An action-capable server may still hide its
banner before BlueZ's authentication request expires, leaving no visible way to
confirm pairing.
This was reproduced with an Apple Magic Keyboard on:
2.4.4+mint2+xia5.72-0ubuntu5.56.6.9+zenaCinnamon advertised
actionsandpersistence. Blueman therefore used anotification bubble. The preceding
Connectednotification and pairingnotification were submitted 0.428 seconds apart and displayed sequentially.
The pairing notification became visible about 4.1 seconds later, remained
visible for 4.323 seconds, and then disappeared. BlueZ eventually sent
Agent.Cancel; the keyboard remained unpaired and unbonded.Fix
Add a
force_dialogoption to the notification factory and enable it only forRequestConfirmation. The GTK dialog remains actionable until the userconfirms, denies, closes it, or BlueZ cancels the request.
Manual verification
The installed Blueman Python files were backed up, patched with the exact diff
from this branch, and identified by SHA-256 during the second capture. The
package version and all other environment details remained unchanged.
Agent.CancelThe patched confirmation dialog was deliberately left untouched for 10 seconds
before clicking Confirm. Pairing then completed successfully.
Automated tests
The full local suite ran 297 tests. All 293 tests supported by the local test
environment passed; four unrelated tests could not run because
python-dbusmock,a writable
/var/run, and a test/dev/rfkilldevice were unavailable. CIprovides those prerequisites.
Related reports include #669, #1525, and #2477.