So I finally moved away from Fedora as my main desktop distro. Though I still have some Fedora machines, including my home server, I finally gave up on it as a desktop; mainly because I use KDE, which seems to get even less attention on Fedora than it used to. Audio rarely worked well (always had to do stuff by hand like start Pulseaudio or fix perms to get everything going), and updates nearly *always* broke something. One of the reasons I moved from Debian to Fedora in the first place was to get fresher code, and newer packages. But that’s a double edged sword; the Fedora folks do so much of the upstream development in the first place that at times it feels more like a testing ground than a real desktop distro. And note I’m not talking about rawhide, this was all F9/F10. On top of that, I prefer KDE (for several reasons, see below), which is at best a second class citizen in the Fedora world. I’m sure if I used GNOME things would tend to work much better, since it’s likely that most of the Fedora developers use it and therefore find/fix problems more quickly there. But I don’t, and I got tired of things breaking, so now I’m using Kubuntu.
So why KDE? I tried GNOME out for awhile while during the KDE4 debacle, for a few reasons:
- bugs - lots of bugs surfaced in KDE4, app crashes, poor integration with KDE3 apps, lots of Konqueror regressions (many sites that used to work no longer did)
- UI weirdness - I really missed my desktop, and at least early in KDE4 I couldn’t even customize the panel like I wanted
- missing app features - konsole was funky (and still is a bit; I really miss being able to set the default size for new windows; now if I change any of them all the new ones inherit that size), kmail was missing from Fedora
- various other annoyances
but I couldn’t stay with it. KDE just has too many killer features I’ve come to rely on:
- klipper - being able to bind a clipboard regex to an action is great; I just highlight a series of 4-7 digits and klipper will ask me which bug reporting system I’d like to open the bug in
- url shortcuts - alt-f2, wp:foo, can’t live without it. alt-f2, gg:bar, can’t live without it.
- the apps - why use GNOME if I’m going to use KMail, Amarok, Konversation, Okular, etc.? And I’m definitely *not* switching to Evolution; I already need to use Outlook for work and I don’t want to use anything else that reminds me of it.
- konqueror - it’s so fast… startup is instant and it works (well used to) with most every site I need to use. I just wish it would move to using a better supported rendering engine like Gecko or Webkit though (well really I just wish it worked with more sites; it seems to have regressed a lot recently and using a more common rendering engine seems like a way to avoid that).
Not to mention a vague feeling that KDE is just better designed & integrated than GNOME (admittedly this is a vestigial feeling based on some early work trying to get both running on IRIX, though there are more recent examples of this, like the infamous “yes/no” swap a few years back). The philosophy is a bit different too; GNOME seems to hide a lot of reconfigurability from the user, making them use a registry editor to change even simple things (again this is probably a dated feeling, but there are recent examples, take a look at the desktop effects config window on KDE and GNOME, the former allows much more control).
So anyway, I’m on Kubuntu now and it seems fine so far (though I do miss the simplicity of “yum list foo*", apt-cache search isn’t quite the same). It’s unfortunate though (for myself and other KDE users) that most of the distros have chosen to focus their development & integration efforts on GNOME, since it usually means that desktop infrastructure happens second or not at all on the KDE side (e.g. where’s knetworkmanager for KDE4? what about full bluetooth integration?).
When I’m not wasting time switching distros or working on bugs, I’ve been working on adding page flipping support to DRI2. It’s slowly coming together; I have a hacked up version of compiz that unconditionally does a swapbuffers without tearing now, which is pretty great. The concept is pretty simple too: I added a new DRI2 protocol request (DRI2 uses a protocol between Mesa clients and your display server, e.g. X or Wayland, to perform updates to your display buffer) to allow DRI2 to ask your display server to swap your GL front & back buffers. This request eventually makes its way down to your display driver (in this case xf86-video-intel), where I added code to detect whether the swap was for a full screen buffer. If it is, we queue a flip of the whole display buffer in the kernel (which in turn queues it directly to the hardware). The flip is of course synchronized to the vertical blank period, so no tearing occurs, yay! I’m still working through a few bugs in the kernel and X code, but people are starting to use it successfully already, which is encouraging. I’m targetting this feature at our Q1 driver release; so if things go well we’ll have a way to avoid tearing on that release; fixing one of our most frequently reported bugs.