Jockey as a System Settings module

There is one thing that has sort of been bugging me since my involvement with Kubuntu. We have all these great configuration/admin tools written with python, but until now they are all standalone applications, and I couldn’t do anything about that.

Until now. Actually it’s more like 3 months ago, but python KConfigModules (KCM) required KDE 4.2. Yesterday Sime (Simon Edwards) posted a link to an example of a python KCM. A mere 20 lines of code later I had System Settings displaying a non-functional GUI.

(Click the image for a bigger version)

Then I worked on it all day, taking the guts of the jockey-kde script and adding it to the KCM in a way that would make it work. But after I finally got through the last syntax and AttributeErrors, guess what System Settings does. It crashes. 😦
Python crashes to be more specific. Either it’s a bug in PyKDE or I’m doing something really-evil-but-syntactically-correct. It could be the jockey-backend which runs in a separate thread causing issues. In fact, everything was working fine until I wired in the AbstractUI (jockey-lib class which populates any jockey-gui, regardless of toolkit) so I’m pretty sure that has at least something to do with it.

But if it did work, it would probably look something like this: (I hacked up a bit o’ code to populate the ui statically)

(Current, real jockey-kde on the left, mock of jockey-kcm on the right, click for full size)
Some notes:
-Definite mockup material
-Yes, there is no icon next to the driver name in the list, shouldn’t be a problem in the real thing
-Yes, the Ubuntu certification and License type are swapped. Easily changed but I’m too lazy to right now.

On the plus side it looks less like a super-vertical Gnome-style dialog and more like a KDE configuration module. (Because it is :P) If only there were a way to make the driver name not as long….

Pending that crash, I am pretty hopeful for a jockey kcm in System Settings for Jaunty. 🙂 Hopefully we can get system-config-printer-kde, the software-sources tool we are launching with adept, and and kde4 port of userconfig in as KCMs too. (I’m not personally involved with any of these… yet. :P)

Oh, and the source code. You can find the code here. Maybe some experienced pythonistas can tell me what the !@#$ I’m doing to make kcmshell/systemsettings/python crash…
To install/use it, copy jockey-kcm.desktop to /usr/share/kde4/services. Then make a /usr/share/kde4/apps/jockey directory and add mainkcmwidget.ui and to it. Run kbuildsycoca4 for good measure and then either launch it from the “System” section in the advanced tab of systemsettings or run “kcmshell4 jockey-kcm” from el konsoledoro. Expect it to crash. 😛


4 Responses to Jockey as a System Settings module

  1. Martin "mhb" Böhm says:

    Back in the day, Jockey actually was a KCM module … but then KDE4 came, everything broke, and it took this much time for Jockey to become a KCM module again.Well, I hope KDE5 won’t get you down as much as KDE4 got me. Good work!

  2. Devin D says:

    I heartily approve of this progress. Thanks for giving Kubuntu some much-needed love!

  3. danzam says:


  4. Travis says:

    Any chance you might have the time to throw together a python KCM that could be used to launch any given application…

    I’ve been trying to get a handful of gtk based system admin GUI’s to show up and run from KDE4’s system settings GUI… Creating the .desktop files for systemsettings was easy, but I have not been able to figure out a way to actually launch the (GTK) admin apps from within system settings.

    I’ve been hoping to find some sort of generic KCM that could be used to launch any given app by specifying the app in the .desktop file’s Exec= line

    I did find one example of something similar, but it has some issues.. I’ve posted some more info here:

    Any help or guidance you can offer is greatly appreciated!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: