Metallica in my backyard.

Two or three times a year, the nearby Goffert Park is turned into a concert
arena. There’s a large field amidst the trees which is currently surrounded by fences. Inside, a huge stage is built, and there’s space for about 60.000 people.
Today is the Sonisphere Metal festival, with koRn, Slipknot and as headliner Metallica playing. I used to a really like Metallica, I actually saw one of their concerts of the “Nowehere else to roam” Tour in the early nineties. (Support acts were Suicidal Tendencies and The Cult. That concert was really cool, although I think I’ve bruised a rib in the mosh pit. Since they’ve let the recording industry instrumentalize Metallica to fight against sharing music, I’m having issues with the band’s politics. Filing lawsuits against your fans is not the way to deal with them, or new and upcoming media and the failure of large parts of the music and recording industry in the adoption of the Internet.

So tonight Metallica will be giving a concert within 5 minute walking distance from my home. I didn’t get myself a ticket, but got woken up today when the festival started.
The concert starts at 20:45, and we’ll probably go over to the park, there’s still a lot of place outside the fence, with many people who didn’t feel like buying expensive tickets but still like hanging around in the park — it’s their (our) park after all. And you get free live music by rather prominent bands. Other bands that have been performing in my back-yard in the last years include REM, Live, Red Hot Chili Peppers, Pearl Jam, The Rolling Stones, and many more. A rocking neighbourhood.

Now playing: koRn – Live at De Goffert, Nijmegen 20 June 2009

Special characters with US keyboard.

I’m using a US keyboard layout on my machine, since that’s the most hack-friendly one I can actually grok and type blindly on. Often, however I need to type special characters, such as € or letters with a diaresis on top, such as ü (useful to type my own name ;-)). Those should be easy to type for me as well. What I did is to modify my keymap slightly, so that I can use the Right ALT key (ALT Gr on some keyboards), and get the correct character just by typing Right ALT + a for example to get an ä). The 5 key already has € printed on it, so I’m using Right ALT + 5 to type the Euro sign.

I’ve saved the following settings into a file called ~/.Xmodmap-Umlaut and when logging in, I’m just running a small script

    #!/bin/sh

    xmodmap /home/sebas/.Xmodmap.Umlaut
    

which reads the following file:

    keysym  u    = u U udiaeresis      Udiaeresis
    keysym  a    = a A adiaeresis      Adiaeresis
    keysym  o    = o O odiaeresis      Odiaeresis
    keysym  e    = e E ediaeresis      Ediaeresis
    keysym  i    = i I idiaeresis      Idiaeresis

    keysym  s    = s S ssharp
    keysym  5    = 5 percent EuroSign
    

Now this is probably not the 100% correct way to do it (email me suggestions for
improvements :)), but it Gets The Job Done and works ergonomically well enough for me. In case you’re getting errors, try replacing ISO_Level3_Shift with whatever “xev” reports as (keysym 0xff7e, Mode_switch) when you capture the Right Alt key with it (or map it to anything you like in the same way).

Depeche Mode concert – not quite yet.

I’m a big Depeche Mode fan,
maybe not so much of their rather simple music they made in the eighties, but with the start of Violator (1990), they’ve continued to impress me with really good electronic music. Depeche Mode, (and Pink Floyd) are probably among those bands who have been influential for most of electronic music we’re listen to nowadays, and in my opinion, very rightfully so.
So Kim and I got ourselves two tickets when DM announced the tour they’re holding right now, but got disappointed when they had to cancel the concert that was supposed to be held week in Düsseldorf, Germany (quite close to Nijmegen actually). Dave Gahan, their charismatic singer had to undergo a cancer surgery to remove a malignant tumor in his bladder. Fortunately, he seems to be getting back to health quickly.
Just read on the website in the news section that they indeed had to cancel some concerts, luckily though the one we got tickets for will be rescheduled, albeit to a yet unknown date. Others have been cancelled altogether, and seeing how much I’m looking forward to that concert, I’m feeling sorry for those who’ll miss out. I guess until the concert is rescheduled, I’ll just enjoy the silence…
Now Playing: Depeche Mode – Sounds of the Universe

Senlik conference in Istanbul.

This week has brought me to Istanbul, to attend Senlik, which is a Turkish Linux conference organized by LKD, the Turkish Linux users group. I’ve been invited to this conference by some developers of Pardus Linux, which is a KDE-focused Turkish Linux distribution. KDE is actually very strongly represented at this conference, thanks to the work of the gals and guys from Pardus, who are also wonderful hosts to me and Kim, who accompanies me to enjoy the city for a bit.
The conference is hosted at Istanbul’s Bilgi University, which is not purely technical but focuses on design and user interaction. I think that makes a great location for a Free Software conference, as the UI part (artwork and usability) are often seen as stepchilds in Free Software projects. I’m trying hard to make sure that people know that we’re embracing designers as first class citizens in our community just like we embrace coders, documentation writers, translators, promo people and community management folks. The grand scheme is I think that KDE is moving from being a Free Software project to becoming a Free Culture project. After all, ‘only code’ is not enough to conquer the world and make Free Software the default on most people’s machines.
As someone just pointed out to me, I (or rather the organizers of this conference ;)) have picked the perfect time to visit Istanbul. Temperatures are at a mild 20 degrees C during the day, the sun is rather warm and nice, but it’s not too hot like it becomes during the summer here in southern Europe. I really enjoy the Turkish culture of coffee in interesting tastes (had a green nut coffee last night, which was really tasty, mild coffee) and Nargile, the traditional water pipe which also comes in interesting flavours, such as apple or the mint / lemon mix I tried last night. The nargile causes a bit of a “light” feeling in the head, I figure it’s mostly caused by an increased amount of Oxygen reaching your brain. The pipe’s smoke seems rather harmless being filtered by the water. Food here in Turkey is just awesome. It’s very easy to find both snacks and also more fancy food. There’s relatively little in the way of fast food, but many different options in Turkish food. Vegetarian food options are just as numerous and good as non-veggie food (which is what I enjoy being a meat lover).
One thing that really strikes me is the number of women around here. It’s really refreshing to see that a Free Software conference can attract women just in the same way. Unfortunately, that is not the case across the board yet. It’s something we definitely need to work on. (Although I think that KDE doesn’t do a bad job right now, with core contributors such as Celeste, Lydia, Alexandra (yeah, all you Alexandras! ;), Chani, …). Overall, the number of women involved in Free Software is still embarrassingly low (around 3% overall :(), so there’s still a long way to go … make Free Softare communities a more attractive place for female contributors, make them feel welcome and taken seriously.
On Wednesday, I’ll spend the day at the Pardus office here in Istanbul, where we planned a workshop for the team. I’ll be using this opportunity to learn more about Pardus Linux which has been continuously impressing me with its amazing level of integration between desktop and underlying operating system. The upcoming version of Pardus, dubbed 2009 will be released this summer, and I can only recommend to check it out. Pardus builds on Python, and most of its infrastructural bits (package management, network management, …) but also the UI are implemented in Python. We’ll be looking at how we can improve the flow of code upstream, and what issues the Pardus developers are facing when interacting with KDE, both code-wise and community-wise. There’s definitely a lot of interest to work closer together with KDE as an upstream community, and often it’s just a matter of encouraging people to apply for an SVN account and start committing. That doesn’t go without it being explained in the first place, though often the reaction I see is “Ow, it’s *that* low barrier …” Some of the Pardus developers will come to Akademy this year, make sure you check out their stuff!
The coming days, I’ll be a bit silent, as I’m taking the opportunity of being here with Kim to also relax a couple of days as well, something we didn’t get to a lot lately. And there’s this long list of different things I still have to try while being here (turkish bath, Iskender kebap only being two of the items lined up.

OpenBossa keynote viewable online.

Last month, I gave a keynote at the Bossa Conference in Porto de Galinhas,
Brazil. It has been recorded and is now up on blip for everyone
who was not able to attend to view it.

There’s also an MPEG-4 version of the video
available
.
The title of the talk is “Bringing the Free Desktop Onto Mobile Devices”.
I’m presenting the bigger picture and examples how the KDE and specifically
the Plasma team works towards more connected and less device-dependant
Free Desktop interface, and how it’s accomplished using new technologies
that are avaible in the KDE 4 platform, and new technoligies that are
being worked on. Suspects such as Akonadi, Nepomuk, JolieEnjoy watching it. :)

Akonadi Sprint in Berlin

This weekend has brought me to the wonderful city of Berlin (wonderful in terms
of having the baroque alternative charme that makes Kreuzberg so special). I’m here for the Akonadi meeting, which is all about the personal information store for the Free Desktop. Together with about 15 other people, the time from Friday until Sunday we’re trying to advance Akonadi to the next level. I’m mainly here because I was brave (stupid!?) enough to start writing an email plasmoid after being infected by Till (who also turns older today) with the Akonadi virus.

During development of Lion Mail, I’ve gotten a pretty good idea of what Akonadi does really well (make it easy to use PIM data in your application), and what’s lacking at this point (searching and sorting being my main wishes). Yesterday, I presented Lion Mail to the PIM crowd, showed some new concepts I’m trying to implement using it, and also showing some of the Social Desktop Plasma stuff I’ve been working on in the last weeks. Immediately after my demo, the discussion how to get searching, filtering and sorting done in Akonadi, which I think is great. Not that it wasn’t on the agenda for this meeting anyway, but it’s really nice to see that some of my wishes are picked up immediately by people like Volker. Other notes from the discussion are on Techbase

I’m not mainly here to talk though (although that obviously is very important), and it would in fact be very disappointing for me if it was all talk-only. Yesterday, I’ve sat down with Volker and looked at a couple of immediate issue I have in Lion Mail, and solutions for those. In my last blog, I was talking about a performance issue that makes it take 20 seconds until Akonadi returns even fairly simple query results. This was a local problem with my setup. (For those in for a good laugh: My Akonadi was incorrectly set up so that it would fetch all the folders from gmane (about 40.000 :o) and store them. While my personal cache of gmane certainly could certainly come handy in case I was dropped onto a lonely island for 30 years, it’s not the most common case. After removing the NNTP resource in Akonadi, query results show up pretty much instantly now. (And gmane has probably also become a bit faster, …)

Some other bits that I fixed in Lion Mail include monitoring for changes in collection statistics (number of emails, number of unread ones), and writing out the changed information of an email back to Akonadi (or in less technical terms: marking an email as important, read, new or task now actually works). It’s one of the things where pieces of a puzzle fall into place, since the changes being written back to Akonadi showed that also change notifications about those items actually work. That means you flag an email as important, and other applets showing this email are reflecting that change as well. Nice.

Also, I’ve done some UI cleanups in Lion Mail, the action icons are now only shown on hover, making for less clutter in the default view. Yay, because clutter
sucks.

Toma has been working on fetching information from microblogs into Akonadi (such a thing in akonadi language is called as “resource”). I’ve spent some cycles yesterday night to add support for this kind of data to the Akonadi dataengine in Plasma and finished this in the course of today. While there’s a microblogging dataengine already, storing the data in Akonadi makes a lot of sense, as it caches the information and makes it easily available to all kinds of apps (not just Plasmoids). It also makes it very easy to share the data across applications. It’ll also be a lot easier to query the information, for two reasons: The way you retrieve data from Akonadi is largely unified. Loading an email from Akonadi works nearly the same as fetching Contact data, or in this case entries in a microblog.

Now the team is up for a totally different, less collaborative and more competitive endeavour. Some Trolls from the Berlin office have come over to teach the PIMsters the necessary Foosball lessons. And while I had initially been bragging about my skills (I’m unbeaten Foosball champion in the KDE e.V. Board-internal competition!), I’m now back to hacking. I’m better at that. (Which says more about my Foosball skills than anything else.)

Ow, and I’m tainted now. I did my first commit to the kdepim module today. (Though I snuck one in yesterday already through some code that was about to move.) Feels kind of dirty, but good.

Summer of Code and Social Desktop

I’ve been thinking about Google’s Summer of Code program a bit, and since it’s having its fifth birthday this year. I thought it would be about time to congratulate the people at the Open Source Programs Office in Mountain View, especially Leslie, Cat, Tiff, Erica and all the others who I had the pleasure to meet at various occasions. Good works, gals!

From a KDE point of view, it’s nice to see after 5 years that this Summer of Code works. “Works” means that it does get us a lot of attraction from new talent. There are actually quite some people active within KDE on a regular basis that have found their way into KDE through the Summer of Code programme.

It’s good to see how this is managed by the Google staff as well, they’re not just throwing money at us, they’re actually putting a lot of effort into SoC, and it provides real, tangible and sustainable benefit for Free Software projects. That’s money spent well.

The user wins as well, over the past year, we came to ship many of the things that have been done within Summer of Code project. In Plasma for example, there’s the extenders that have been introduced with KDE 4.2 and has already become part of the core infrastructure. Rob Scheepmakers is the guy behind extenders, and has since then maintained the codebase and improved it further. Then there’s of course Chani, who has also “landed” her Summer of Code project in KDE 4.2. Her project brought plasma widgets to the screensaver. Something I wanted to start using on my desktop machine yesterday so I can suspend it without needing to unlock it first. No dice, turns out it’s not as straightforward as I thought (i.e. it would take me more than 20 seconds, which I didn’t want to invest at this point). It’s probably about 4 lines of javascript as well. I’ll buy the person that does it a beer during Akademy on Gran Canaria.

This year, I might mentor a project. There’s the Social Desktop proposal. I thought I had added it about a week ago, and wondered why nobody got back to me on that. Turns out that it hadn’t actually been saved probably due to an error on my side. I’ve added it again, and now it actually turns up on the page. I think there are still a couple of days left until the deadline, so maybe someone comes up with a good proposal. I can help a bit by giving feedback for a draft, so you can still get it into good shape before the deadline.
The Social Desktop is actually a very intereting project. It possibly combines many of the interesting KDE4 technologies in a way that should be tangible for the user. Code-wise, it will mostly happen on a rather high level. Part of the work will be integrating the bits that are already there, Decibel for real time communication, Nepomuk for search and indexing, Akonadi for PIM data, but also more “web-enabled technologies” such as GHNS, JOLIE and Attica to get information, content and also more interaction between users going. Update: So turns out that my space-time continuum was out of balance when I wrote the above lines late last night. I had been looking at the 2008 page, and assumed my social desktop idea wasn’t there. Some friendly people pointed out that it is 2009, and after a quick check (we have clocks for that in Plasma), I have to concur.

What’s up with Lion Mail?

Lion Mail Plasmoid.
With an Akonadi sprint in Berlin coming up, I thought I’d write a couple of lines for those who are interested in some PIM stuff in Plasma.
Lion Mail is a Plasmoid that shows information about emails. It can be used to display for example unread emails in a popup in Plasma. Lion Mail is much more powerful than that though. Lion Mail can load various collections, and handle them as independant applets or groups of applets on the desktop. It uses Plasma’s extenders which provide support for detaching parts of an applet. Lion Mail offers in fact two Plasmoids. The Lion Mail applet groups emails into collections and displays them in a configurable listview, either on the desktop or as popup applet in the panel. Then, there’s the emailmessage applet that can be put in either panel or on the desktop, and reveils more information as you make it bigger. It dynamically loads the body and displays it if you give it enough space by resizing. This happens transparantly for the user. The idea behind this is that you can drop interesting emails for reference onto desktop or panel, and throw them away when you don’t need them. The email applet also offers interaction buttons. You can flag the email as new, unread, important and task item right now. I’m planning to also offer a safe way to trash an email, so you don’t get to end up with the situation where you’re distracted once by some spam email, Lion Mail and the Email Message Plasmoids act as some sort of intermittent email reader.

The third and least visible part is the Akonadi dataengine. It’s actually there for a long time already, but hasn’t been much used. I’ve picked it up, brushed a bit of bit-rot off of it and extended it to do everything I need, and a bit more. I’ve also added support for contacts to the engine. Having a dataengine for this kind of stuff means that the data is very easily accessible for scripted applets, no special bindings for libraries in PIM or Akonadi are needed. (Naturally, the dataengine itself uses those libraries internally.) In the screenshot, you can see the configuration dialog, the Lion Mail applet and an email applet, all placed on the desktop. The Lion Mail applet show a list of emails, with various bits of metainformation hidden or shown. As you can see, you can even view the full email from within Lion Mail. The buttons shown let you tag the emails, or mark read/unread. Clicking on the icon expands and collapses the header, clicking on the green expander shows and hides the body. It’s loaded dynamically from Akonadi. Typically, you’ll have Lion Mail sitting in your panel, if you click on it you’ll see a popup just like the right applet in the screenshot. If you’re using the email applet on the desktop (bottom left in the screenshot), you can reveal more information by resizing it using applet’s handle.

There are a couple of things that need more work, either because I’ve not gotten around to it yet, or because I didn’t find a good solution. In random order:

  • Various layouting bugs. Qt 4.5 has improved the situation quite nicely,
    and along with it my experience and wisdom of QGraphicsLayouts has increased a bit as well. Still there is something I’ve not completely sorted when displaying the applets in a list and expanding items in that listview (usually Lion Mail).
  • Fetching the list of collections from akonadi often takes 20 seconds,
    I’m not sure why. Fetching individual items is pretty darn fast. Fetching of all the lists and content from Akonadi happens fully a asynchronous, which is a big, big plus if we want to keep the UI responsive.
  • Drag and Drop support. It works in a wacky way from Lion Mail onto the
    desktop, but needs a cleaner solution. I’ve already called onto the gods and demi-gods of the holy Plasma to get me ideas. The issue is basically that we’re not dealing with email data but with URLs that deliver us one content type or the other. Checking the mimetype of some dropped URL and doing something sensible with it is something I didn’t get to work nicely yet. While the current code is totally disgusting, it’s pretty neat interaction-wise. Upon dragging an email, you get a nice large-ish email icon attached to your mouse cursor, and when you drop the email onto the desktop, it’s created from the akonadi URL, and loads its content from there. Eventually, the user should be able to just drag an email from her favourite email client (Mailody for sure, it’s the first app to use Akonadi for email) onto Plasma, and maybe the other way round as well.
  • Sorting and more advanced querying (“virtual folders”). The way Lion Mail works right now, it’s not possible to sort emails. I’m not sure how to solve this best, since it’s two things I want. First and foremost, I don’t want to request full folders of emails (a couple of thousand emails in the common case) only to throw 99.9% of them away. That means that I need some way to query “8 news unread emails from all folders” or “all emails flagged important from imap folders private, work”, “emails tagged ‘petting zoo'”, “8 latest emails from Artur, Wade and George (Yes, you George!)”. That’s the kind of thing I want to be able to display with Lion Mail. The other side of the problem is of course that the display in Lion Mail itself doesn’t do any kind of sorting at the moment. I figured that would be futile, since I’m using the “throw away 99.9% method” right now anyway. (WTF++) Something that needs more of that tender, love and care. And probably some model-view-akonadi-fu as well. (I’m looking at you, Till. :-))
  • Integration of activities. The collections shown may vary depending on the current activity. It should be straight-forward to set up Lion Mail so that it only shows you emails relevant to your current activity. Or in less abstract terms: When you’re free, you should be notified and shown emails from work or when you’re working on some project, to show emails relevant to that context. One of the TODO items.
  • Notifications. Didn’t get to that yet, simple as that.
  • Improved display in the panel. This means for example showing the number of unread emails in there, or something more fancy than that.

I’ll meet bright people at the Akonadi meeting in ten days at the KDAB offices in Berlin, and that I’ll find solutions for some of the things that I want to do in Lion Mail. Developer meetings are a wonderful way of learning and tapping into other’s knowledge and experience. Or simply to get someone to test it and see where things are breaking and falling apart. :)

Another couple of ideas I’m planning to implement for Lion Mail is more integration with Contacts. Here I’m not necessarily talking about “entries in my addressbook” (only in the ideal case, where they actually have an entry in my addressbook). A contact goes further than what the entry in the addressbook provides. Contacts are one way to provide context to data. The sender of an email matters a lot, even more so when you’re looking at emails. Other emails by some person are probably relevant to show as well, pulling in instant messaging status, and possibly social network activity are surely interesting things to look at. Hmm, … “Lion Mail: Social Networking for Email Geeks”. sounds like a nice vision statement for it. ;)
For that to happen, I need to figure out a way to ask Nepomuk about data related to the concept of a “Contact”. The exact relationship is a bit unclear to me right now though. Should all data be requested through Nepomuk? In how far can I use Nepomuk concepts in Akonadi? Think of the famous “give me all items (emails, chat logs, …) by this Nepomuk contact”.

If you’re interested in looking at Lion Mail code-wise, it’s currently in Plasma’s playground. If you’re planning to use it, hold your breath for a while, it’s not ready for use at this point.

A nice side effect of all that hacking is that I’m starting to get the hang (addiction?) of the Monster that C++ can be. I’ve started learning C++ about two years ago. Over the last weeks, I’ve felt that I’m more confident with how I write code, I make less dumb errors, I understand more quickly what’s going on, and I can understand code quicker now. There’s so much more to learn, but at least I’m feeling I’ve moved from the “figuring out how I express this in C++” to “write code” mode. That said I’m all but an experienced C++ hacker. One of the things that continue to strike me is the overall clarity of KDE’s codebase. Combine that (providing huge amounts of examples for everything) with a lot of nice people that can help you figuring out things, and you get a very productive and rewarding learning environment.
Of course I’m not even talking about touching non-Qt/KDE code. That still is something I generally try to avoid, mostly to keep complexity down to a level that is manageable for me. And it’s icky.

Bossa conference 2009.

Bora Bora beach near Recife.
I’m in Porto de Galinhas near Recife in Brazil right now, where I’ll be
keynoting at Bossa Conference later today. I’ve been flying in last Thursday from Amsterdam via Lisbon, where I already met some Trolls (Andreas (QGraphicsView), Marius (QItemViews) and Simon (QWebkit)). After a good flight (I got four free seats in a row, which translated to “lie down and sleep as much as you can” to me), we arrived in warm and sunny Brazil. It’s about 30 degrees here, and it’s spot on summer (spot on winter would mean 26 degrees C, since Recife is only 8 degrees south of the equator). On Friday, we visited the INdT office close to our appartment, and on Saturday the iNdT guys took us to Bora Bora, a piece of beach 2 hours south of Recife that welcomes you to paradise. Can’t really argue with that. :-)

On Sunday, the “conference improper” began with a welcome and drinks in the evening so everybody was able to have a fresh start on Monday. Sandro opened the conference with being interrupted by a bunch of Brazilian dancers, I guess everybody was pretty much awake after the drums on dancing.

The conference itself strikes a very nice balance between interesting talks, interesting conversations with interesting people, all that in a very relaxed environment. It takes place in a beach resort, basically a small village with a large swimming pool landscape in its center. The conference and hotel staff is making sure that everything is running smoothly and nobody seems to miss anything.

An interesting talk I followed yesterday was Marcel Holtzmann’s
presentation about ConnMan, which is a new piece of infrastructure for “getting online”. Marcel went through some parts of the network stack showing many parts that just aren’t up to today’s requirements anymore, and presents a solution that he’s currently working on as part of his work for Intel. ConnMan is a replacement for NetworkManager, which is built to be scalable for the future when new technologies such as WiMax arrive at the user. It’s basically supposed to be a “more than full” replacement for NetworkManager, which is very complicated in its design and often very slow in its use. ConnMan is designed to make it easy to build a UI on top of it, which is good news for people like me, having worked on the NetworkManager plasmoids UI bits. While I was at first rather sceptical, thinking “Now that NetworkManager actually starts to behave like I want it to, it’s being replaced, oh noooooo!”, Marcel’s managed to convince me that the way forward he’s proposing is actually very sensible. Will Stephenson will probably concur as he sees actual documentation, as he’s been the “sucker” who took on the work going through large parts of NetworkManager’s source code to find out how to write a UI for it. Let’s just say “it could’ve been a more pleasant experience” ;-) So yeah, documentation on the interfaces is something critical if you want others to use your stuff.

I had some interesting conversations yesterday with Rasterman, the founder of Enlightenment. Topics ranged from resolution-independant interfaces to release policy, filesystem hierarchies and how that works for users and of course more mundane subjects like “cocktails served in coconuts”.

The atmosphere is is really great, it’s fantastic to discuss plans and their implementations with the iNdT folks (especially when the meeting table is not a table but a large swimming pool — that definitely makes for fun and interesting digressions.

In unrelated news, Gökmen, one of the developers of Pardus Linux (a Turkish Linux distribution) has invited me to speak at a (more user-oriented) conference in Istanbul next month. I’m happily accepting that invitation, so if you’re in Istanbul on April 17 and 18, make sure you drop by.

Don’t ship KDE 4.2 with Qt 4.5.

Just a couple of days ago, we’ve upgraded qt-copy in KDE’s SVN to the release candidate of Qt 4.5. Qt 4.5 is to be released shortly, and some distros and Operating Systems apparently plan to ship KDE 4.2 with Qt 4.5. That is not a good idea, not if you want a well-working Plasma. (qt-copy is a copy of Qt (d’oh!) we’re using for KDE development and which contains some patches we’re pushing upstream to Qt. Those are often fixes we need in order to be able to develop KDE.

But let me explain. In Plasma, we’re using QGraphicsView a lot. QGraphicsView is a canvas that is different from regular widgets and windows. As such, “normal” QWidgets don’t work (wait, I’ll get to that in a second), neither do QLayouts. Enter QGraphicsWidgets and QGraphicsLayouts. The latter are still quite new in Qt, and as such not as mature as we’re used to from other components in Qt. QGraphicsLayouts in Qt 4.4 for example have problems resizing when their content changes its size. Luckily, most of that has been addressed by the Qt developers so that we’re looking at a much improved QGraphicsLayout in Qt 4.5.

In order to get some of the more complex Plasmoids to work correctly in (the Qt 4.4-based) KDE 4.2, those Plasmoids contain workarounds for those problems, workaround that aren’t necessary for Qt 4.5 any more. Some of those workaround are even considered harmful when using Qt 4.5 (i.e. they will simply break things such as screwing out the layouting of widgets). The result of that is that Plasma in KDE 4.2 is effectively incompatible with Qt 4.5, hence the reason we ask distributors to not ship KDE 4.2 with Qt 4.5. At least not until further notice.

We’ve already removed some of those workaround and hacks in KDE trunk/ (which is what is going to become KDE 4.3 this summer). KDE 4.3 will require Qt 4.5 anyway once it’s released, so this is pretty much a no-brainer. It’s not trivial to backport those things, that’s why we’re currently not planning to do that.

So as it looks like, we (the Plasma team) won’t support running KDE 4.2 with Qt 4.5. If you’d like to know further details about this, or want to find out what it takes to get KDE 4.2 working with Qt 4.5, please come over to the Plasma mailinglist (plasma-devel kde org) to discuss this further.

Update: Most of the issues have been resolved by both the Qt and KDE teams. If you happen to run into problems with this combination, let us know via bugs.kde.org or one of our mailinglists and we’ll see if we can fix it.