Hacking at kxkb

Today I woke up earlier than usual (no well, to be honest, I wasn’t able to sleep decently during all the night), so I wanted to spend the time working on something that would make me ignore what I have in mind. As I was there, I wanted to get kxkb working right, as I needed krdc to send the correct keycodes to the Windows box I have to work on, I couldn’t continue using only alt-intl variant, that wasn’t sending the keycodes right.

The issues were at least two: the first was that kxkb wasn’t playing fine with alt-intl variant, the second is that, not having two different layouts anymore (us and us_intl) as was up to at least, kxkb wasn’t allowing me to put the two different keyboard layouts in a selection cycle (when you added a layout, it was removing it from the list of choices).

I then started working on the second issue first, allowing to add the same layout more than one time, and saving/loading the variant with it. The issue wasn’t trivial, but it wasn’t so difficult either, the only problem is that, to store the variants no more indexed by layout, but rather by entries, I had to use, as index, the string containing the hex representation of the pointer of the instance of QListViewItem that represents the single entry. Quite an hack, but worked.
After fixing this, I stumbled across the other problem, that resulted quite trivial, when I found it: basically the regular expressions used to load layout and variant were using [a-z0-9_] as specification for valid characters, this wasn’t obviously working for us(alt-intl). Adding – to the list, solved the problem.

So the result is that now in 3.5 branch in KDE’s SVN you can find a kxkb capable of adding the same layout more than one time, choosing different variants, and then allowing to use us and us+alt-intl replacing the old us and us_intl behavior. As the patch is quite intrusive, I’ve rather not put it on Gentoo’s ebuild for kxkb and kdebase, so people would probably have to wait till 3.5.1 to be released to have that fixed. I’ve, though, fixed the alt-intl problem with the -modularxkb patch you can find in kxkb and kdebase 3.5.0, so you can just re-emerge them to make use of alt-intl if you want. I’ve not revbumped as xorg modular is still experimental so it’s not like everyone using ~arch would like to rebuild kdebase for something they don’t care at all.

Oh, on a side note, ALSA 1.0.11_rc2 is in tree. The changes to drivers mostly interest emu10k1/2 users, the rest are mainly side issues. The ppc/bigendian issues are fixed upstream, but they were fixed on Gentoo already.