Why is "KDE System Settings" in 22.10 and Lunar?

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.

LXQt is a Qt5 desktop.

KDE is also a Qt5 desktop, though it also needs KF5 (KDE Frameworks) making it heavier yes.

Lubuntu 22.10 uses bluedevil for bluetooth as you’ll note on our 22.10 manifest.

The bluedevil package (Ubuntu – Error) uses the KDE Bluetooth stack, but it’s fully functional & works, and is lighter on LXQt than many GTK alternatives.

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?

1 Like

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’ :frowning: . 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 :stuck_out_tongue:

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.

1 Like

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”.

1 Like

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 :stuck_out_tongue:

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

This is actually a bit complicated.

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.

4 Likes

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 :stuck_out_tongue: 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.

3 Likes

Oh wow, that sounds cool! Keep us posted.

1 Like