Archive for July, 2008

KDE 4.1 in Arch Linux

29th July 2008

Now that KDE 4.1 has been officially announced, I don’t feel I’ll be stealing any thunder to tell you that Arch Linux has had KDE 4.1 in [extra] (the main repository for non-essential software) since yesterday evening.

The KDE 3 desktop has gone (the maintainer of the KDE packages has no wish to attempt to support both), but kdelibs 3.5 has moved to kdelibs3 and several KDE 3 applications (such as Konversation and K3b) that have no stable KDE 4 releases or equivalents yet are still available.

One of the main advantages of Arch’s “rolling updates” system means that, once a stable and usable version of a piece of software is released and has been tested, it can become a part of the distribution immediately without having to wait for the next scheduled release.

Personally, I’m running trunk (and have been since plasma was vaguely usable sometime last Autumn), but it will be useful to have a basically vanilla 4.1 release to test bug reports on.  And it also means I have fewer dependencies to compile myself.

So: much thanks to Pierre Schmitz for his work packaging KDE 4.1 in time for its release.  This is one reason why I love Arch so much.

[edit] See comments for info on kdemod [/edit]

KDE 4.1 in Arch Linux


KMail Trunk: Signing

24th July 2008

If, like me, you run KMail trunk (what will be 4.2), sign your emails and don’t use gpg-agent, you may have found that signing emails suddenly stopped working a while back.  I finally traced the problem: a change in the way signing is done with the gpgme backend means that kleo, the magic behind all things cryptographic in kdepim, no longer provides a password entry dialog.  The reason is that the signing is done in a side thread, and GUI stuff can only be done in the main thread.

The solution?  Use gpg-agent, of course.  You need to install gpg-agent and the pinentry package, and then put a script (call it – the .sh is important) in $KDEHOME/env that starts gpg-agent.  The contents of my ~/.kde/env/ file are simply:

eval $(gpg-agent --daemon --pinentry-program /usr/bin/pinentry-qt)

You should also stop it again at logout.  To do this put the following script in the $KDEHOME/shutdown folder and make it executable:

# the second field of the GPG_AGENT_INFO variable is the
# process ID of the gpg-agent active in the current session
# so we'll just kill that, rather than all of them
[ -n "${GPG_AGENT_INFO}" ] &&
    kill $(echo "${GPG_AGENT_INFO}" | cut -d ':' -f 2)

All this stolen from a Gentoo HOWTO.

On Being Nice

22nd July 2008

Does it really cost so much to be nice?

If you’re wondering why I’m posting this now, look at the comments on George Wright’s latest blog entry.  Or on the post he references.  I have my opinions on the issue at hand, but I’m not going to post them here – I have no wish to get dragged into this biting and scratching game.

What irritates me about the whole situation is the rudeness of people.  This is just one example of it.  KDE has its share of incivility, although less than most online communities.  Really, the whole “I don’t agree with you, so I’m going to hurl abuse at you” thing just doesn’t cut it.

I’d like to point readers to an example of how to respond to people you don’t agree with.

And I’d like to post a pointed XKCD issue:

On Being Nice

Internet Argument

MPRIS Tester 1.0

20th July 2008

I’ve just ironed out the last few creases (that I’ve found so far) in my MPRIS tester. It should now thoroughly test all parts of the MPRIS spec. Well, none of this testing is automated, but there’s only so much automated tests will do for you with something like this.

I’ve already used it to find a problem in Amarok’s handling of structs of ints (the same problem the first version of the MPRIS tester had).  I found some handy documentation about how to do just that.  It shows up a few more bugs in Amarok’s MPRIS interface that I’ll attack at some point if peterzl doesn’t get there first.

Note that this can be used as a rather rough-and-ready controller for any MPRIS-capable players on the local system, but it isn’t geared towards that and isn’t pretty.  It deliberately exposes all the internals of the MPRIS interface.

You can grab the code (only a 10K download!) at, and here’s a screenshot of the final beast in action:

MPRIS Tester 1.0

MPRIS Tester 1.0

MPRIS Tester

20th July 2008

I’ve just finished writing a tester app for MPRIS.  It covers all the parts of the standard for querying and controlling media players over D-Bus.

It’s pure Qt, since I didn’t need any KDE-specific stuff – it’s just a quick hack, anyway.

I was going to write it in (and use it to learn) a scripted language like python, but I got impatient.  I might reimplement it in an interpreted language at some point.

There are a couple of problems (to do with receiving structs of ints) that I need to track down to either my program or Amarok (or both – I reference Amarok’s code when implementing those bits).  But other than getting the status and the MPRIS version, it seems to work.  And I think it’ll be a handy little tool.

I’ll upload it to when that site returns to normality, but in the meantime:

MPRIS Tester

MPRIS Tester

Edit: The application can be found at Qt-Apps.

Plasma == Shiny

14th July 2008

Of course, the title of this post should be “Plasma is in the class of shiny things”, but standard British keyboards don’t have a set containment symbol.

Here is my desktop:

A screenshot of the desktop

Plasma == Shiny

It’s quite simple, but demonstrates a couple of the cool things about Plasma.  Plasma is, of course, all about clocks.  And so it’s vitally important to make use of this.  Above, you can see that I have a clock showing “Seigo-time”.  Because it’s handy to know when the project maintainer is likely to be awake.

I have a notes plasmoid.  I don’t use it.  It just looks cool.

The now playing widget is displaying what Amarok is playing (with its dynamic playlist!  Woo!).  Just to the right is a little bar.  That’s because my mouse is hovering over the right side of the now playing widget.  If I was hovering at the left side, the bar would be on the left.  Cool, no?  Actually, in this case it wouldn’t, because it’s clever enough not to put the bar where it would disappear off the screen.  I can use this handle to resize it (top button), rotate it (second button), remove it (bottom button) or move it (everywhere else).  If it was configurable (as the clock is, say) it would have a little spanner button for that.

In the middle of the screen is the run dialog (accessible with ALT+F2).  It’s a bit off-centre because I moved it to allow you to see the handle on the now playing applet.  I’ve typed “ksnap” into the text box, and it’s filtered down to show ksnapshot.  Even cooler is what I get if I type in “=47*3”, for example.  I get a little calculator icon with “141” underneath.  Handy.

You know what else is cool?  If you don’t like how the now playing applet looks, you can make your own (I wouldn’t blame you, it’s pretty rubbish).  And you don’t have to faff around with supporting Amarok and Juk and XMMS and whatever else.  You can just use the now playing engine that I already did all the hard work for (control of players is coming soon).  Just ask for the “nowplaying” data engine, and grab the info you need from there.

Did I mention I like KDE 4?