Lubuntu is based on LXQt. To my surprise I’ve found under Preferences apparently a KDE application.
What is the purpose of this? Configuration of Bluetooth devices primarily?
My fear is that by pulling in this configuration tool a whole lot of KDE specific libraries have been pulled in. And maybe applications we can live without as well.
There is (was?) discussion on LXQt on creating an alternative; refer Bluetooth UI · Issue #297 · lxqt/lxqt · GitHub, but every tool to be created, and then maintained requires resources. Are you aware of a lighter alternative? that is also as fully-functional?
That explains it! Besides bloating it may be confusing for some end users (including me) to have a KDE component in Lubuntu that manifests itself very loudly as ‘Plasma System Settings’ . I can understand that bluetooth is out of the scope of the LXQt-project. Just like networking is. And printing.
Unfortunately I don’t know a better alternative for LXQt.
So far I never had any serious need for bluetooth on Lubuntu (or any other desktop), although I’ve played around with a command line tool. That was five years ago, or maybe even more, and the whole experience was quite buggy (or the driver(s), or the CLI-interface, or both). I am sure things have advanced since then, but we need a proper desktop application
Thanks for the information. I will have a look at it in detail. I am a programmer with spare time. Perhaps I can help with programming and/or maintaining.
The Lubuntu manual explains explains the bluetooth functionality of bluedevil-wizard. Seems the manual is pre-22-10, since it mentions starting the wizard by hand (not from a menu). Anyhow, this method is far less obtrusive than the scenario I mentioned above. So, why not just start bluedevil-wizard from a menu, instead of the ‘Plasma System Settings’ application? (Remains the point of bloating the system with KDE libraries.)
BTW…I have not been able to use bluetooth on Lunar (“no bluetooth”), and my laptop (“yes bluetooth”) runs 22.04. My wild guess is that the bluedevil-wizard (as described in the Lubuntu manual) pops up in the 'Plasma System Settings" application, if there is bluetooth. I just see an empty screen with “No Bluetooth adapters found”.
As promised I’ve looked in some details at a Qt replacement without KDE dependencies. My conclusions follow.
I have been looking at the source code of the KDE wizard. My thoughts about replacing it with another application that does not depend on KDE libraries are:
bluedevil-wizard seems to be a pretty well written application
the required functionality of the replacement is - an sich - rather simple (as is bluetoothctl)
the complexity lies in having to know much of the technicalities of Qt5, the D-Bus IPC protocol, and last but not least, the low-level BlueZ protocol stack (part of the Linux kernel, and the interface with the heart of the Bluetooth technology). I don’t know yet how bluedevil-wizard does it, but reverse engineering costs also effort and time
although, replacing it with a pure Qt5 application should not have to be very difficult, if you forget about the BlueZ layer, and write a simple Qt5 frontend for bluetoothctl
bluetoothctl is part of the BlueZ software, and GPL2 available
so, in the end, writing a new Qt5/6 frontend seems feasible
Perhaps even simpler would be to write some Python or Lua application that talks to bluetoothctl
I have not yet decided if I will take up that endeavour. What I just earlier did in 3 seconds (oooh, maybe 3 minutes) with bluetoothctl, could easily take up 3 weeks or even 3 months of programming, and testing. Or even longer, before a product would be ready for shipping. And yes, it would have to be maintained as well.
I will keep on thinking about it, today. Already coining a name: bluetoothctl-qt.
Something else - things to do be done (for the Lubuntu team):
make a proper desktop file for bluedevil-wizard so that it can be started in Lunar as a menu item (give credits to the KDE team!);
consider if there is still need for the ‘Plasma System Settings’ menu item
The KDE System Settings package is an absolute dependency of the kde-config-updates package. Basically, kde-config-updates provides some settings for how the system should update itself (I don’t understand it fully).
So why is kde-config-updates installed? It is a recommended dependency of plasma-discover, which is the app store Lubuntu uses. Without it, there is a particular button in Discover that stops working (unsurprisingly, one that has to do with update configuration). It was considered too much of a bug for that button to stop working to be worth omitting kde-config-updates, and we were too close to the release of Lubuntu 22.10 to be able to attempt to hide the button from the user.
Theoretically, we could have simply hidden the KDE System Settings application from the end user. Sadly, due to a bug in upstream LXQt, that wasn’t possible - the setting that would cause the application to be hidden doesn’t appear to do anything.
We had too little time and the fixes necessary were too involved. We elected to simply let it slide and try to fix it later. Hopefully we will have a fix for this before Lunar releases.
Edited to add: Discover isn’t usually what handles updates in Lubuntu, however, it can be used to update the system.
Thanks for your detailed explanation. I understand, too much to do, too less time. I appreciate highly what you and your team members do for us. Keep up the good work!
In the mean time I’ve played a round a bit with a setup for a pure-Qt5 replacement for bluedevil-wizard. I can’t promise anything, its a heck of a lot of work for a one-man-pony-show. And…considering that bluedevil-wizard does the job I learned already a lot about BlueZ, and the work of the original authors (of bluedevil-wizard). I’ll keep you posted when I have some serious results to mention. This may take a while though, or indefinite.
I found out that Qt has a QtBluetooth-API, which makes interfacing directly via the presumably lower-level BlueZ-interface superfluous. Perhaps mimicking the functionality of bluedevil-wizard will be more straightforward and less cumbersome when using it.