Tagged: kde

And just like that, I’m a GNOME user

When I first started using Linux (more than a decade ago), I did my share of playing around with various desktop environments: the classic FVWM, GNOME, KDE, Enlightenment etc. I settled down with KDE. Over the years, I kept coming back to GNOME to check it out but somehow KDE always felt home to me.

Well guess what, not any more. As of a few days ago, I’m (mostly) a GNOME user.

I still love KDE (the desktop) and KDE based applications (KMail, Amarok etc). It is still infinitely more configurable than anything comparable in GNOME (Evolution and Thunderbird are still fairly limited in comparison) and over the years I’ve tweaked it to just the way I like it. But GNOME has something the KDE project does not: Canonical.

Thats right, I switched to GNOME because of Canonical, the company that drives Ubuntu development. Sure, there is a lot of effort behind the various Ubuntu variants such as Kubuntu, Xubuntu etc. But make no mistake, none of these variants are first-class citizens in the Ubuntu ecosystem.

The switch was a result of my recent experience setting up Ubuntu on my home theater PC. The effort Canonical has put into making the Ubuntu experience more seamless and pleasant is clearly visible. Pretty much everything works out of the box: folders that I share show up on other computers in my home network, bluetooth/webcam etc all work just fine, setting up remote desktop is a breeze and so on, Avahi/bonjour works like a charm; I can setup a DAAP server to share my music and it shows up on iTunes just like that.

Note that all of these things are obviously not limited to Ubuntu in any way. But the user experience in Ubuntu is unparalleled in comparison with Kubuntu etc. Subtle niceties like the notifications (the Ayatana project), the Me menu,  the messaging menu, the “light” themes etc. come together in a very cohesive way to deliver an experience that rivals that of Mac OS. But beyond the subtleties, Canonical is shaping the future of Linux on the desktop, laptop and mobile devices: the Unity interface, multi-touch support for mobile devices and more. Bottomline: having a company put its weight behind a desktop has ramifications.

So as much as I love thy, KDE, for now we shall part ways. I’m still using some KDE apps (like digiKam), but until Canonical decides to officially adopt Kubuntu, GNOME it is.

A more extensible KDE

First off, I love KDE and I am a long time KDE user. I use GNOME/GTK applications where they good KDE/QT based alternatives don’t exist, but I prefer K-land in general. Don’t get me wrong, KDE is one of most extensible free desktops out there. However, I do think it is missing extensibility in a few key areas, namely the web browser (Konqueror) and groupware (the KDE PIM suite).

The explosive adoption and popularity of Firefox is a testament to the power of having an extensible platform. The ingenuity was in opening up the API and then getting out the way of developers. Even a cursory look at the [[https://addons.mozilla.org/en-US/firefox/|extensions directory]] shows that big and small developers basically just ran with the extension mechanism, using it to enhance the user experience of Firefox in often unexpected ways. And thats the real beauty of the system — it is now self-sustained, with a vibrant, thriving and supporting community. Another huge facilitator was a centralized extension directory and a built-in auto update mechanism.

{{ http://www.mozilla.org/products/firefox/buttons/header.png|Mozilla Firefox}}

A similar phenomenon has propelled the growth of Thunderbird. While the [[https://addons.mozilla.org/en-US/thunderbird/|Thunderbird extension directory]] is not nearly as comprehensive as the Firefox one, there is nevertheless a lot of interest and enthusiasm in extending Thunderbird. It also allows users to take advantage of newly enabled functionality without waiting for a proper release to come out. For instance, there is a [[https://addons.mozilla.org/en-US/thunderbird/addon/4631|provider for Googel Calendar]] which allows read/write access to your Google Calendar from within the Thunderbird UI (using Sunbird or Lightning). Or check out [[http://simile.mit.edu/seek/|Seek]], which builds a completely new search interface (Faceted Browsing) in Thunderbird.

On the other hand, despite having an [[http://ubuntuforums.org/showthread.php?t=418950|excellent]] [[http://vntutor.blogspot.com/2008/02/10-hidden-features-of-konqueror.html|feature]] [[http://www.konqueror.org/features/|set]] and a proven rendering engine (KHTML, from which WebKit was derived, which in turn powers Safari, among others) [[http://konqueror.kde.org|Konqueror]] never quite hit mainstream. Even today its user base is limited to power browsers or loyal KDE fans. I have myself [[http://floatingsun.net/2005/10/10/konqueror|tried to switch to Konqueror full time]] but always gave up, usually because of lack of functionality compared to Firefox (often enabled due to various plugins I had installed) and bad support for advanced Javascript and most noticeably, Flash.

Konqueror implemented support for Netscape/Firefox plugins as a stop gap measure, but AFAIK that mechanism was primarily meant for Flash, and even then it is quite flaky (it //still// doesn’t work for me). There never was the ability to use any of the regular XPI/XUL based Firefox addons.

{{ http://www.kde.org/stuff/clipart/klogo-official-oxygen-128×128.png|KDE}}

Similarly crippled is the entire groupware suite in KDE, [[http://kontact.kde.org|Kontact]] and all its component applications, most notably [[http://kontact.kde.org/kmail/|KMail]] and [[http://kontact.kde.org/korganizer/|KOrganizer]]. Here are just few of the ways in which I would **love** to extend KMail and KOrganizer, but have no way of doing so, short of downloading the code, making the changes and compiling from source, which makes it all but impossible for the vast majority of users out there:

* allow KAddressBook to synchronize with my Google Contacts
* allow KOrganizer to synchronize with and edit my Google Calendar
* support for arbitrary tags/labels in KMail
* build an attachment browser for KMail
* build email analysis and visualization into KMail

It might be that some of these are better implemented as core features and not as plugins, but thats not the point. What frustrates me is that there is //no// way for me to easily and quickly extend the functionality of my applications, despite the fact that KDE has always had a really clean and modular architecture, so building a plugin mechanism really shouldn’t have been that hard. Case in point: Amarok.

Anywho, with KDE4 and the consequent KDEPIM port/rewrite, we have a chance to fix things. Please, //please// make sure that an extensible plugin based architecture is a first class feature this time. And with the [[http://kross.dipe.org/|Kross]] framework, I should be able to write extensions in several popular languages (btw, I’m not a big fan of XUL/XPI, and the documentation on them is not that great either). It would be so much easier and nicer to be able to write addons in Python or Ruby.

So here’s to a more extensible KDE.

Test driving KDE 4.0

[[http://kde.org|KDE 4.0]] has [[http://kde.org/announcements/4.0/|been released]]. Since I have been using KDE as my primary desktop environment for well over 5 years now, this is certainly something I am very interested in. In the past few months, I did try out the previews and the RC releases, but mostly just to play around with them, never really considering them for serious daily usage. And it was real easy to start a KDE 4 session inside my KDE 3 session (as described [[http://kubuntu.org/announcements/kde4-rc2.php|here]], for example). I used this small script (save it as ”start-kde4.sh”):

export LD_LIBRARY_PATH=/usr/lib/kde4/lib
export KDEDIRS=/usr/lib/kde4
export PATH=/usr/lib/kde4/bin/:$PATH
export KDEHOME=~/.kde4

Xephyr -dpi 96 -screen 1024x768 :1 &
DISPLAY=:1 /usr/lib/kde4/bin/startkde

But now that KDE 4.0 has been officially released, I wanted to take it for a serious test drive. So I updated all the packages, logged out, deleted ”~/.kde4” (so I could get a clean start), took a deep breath, and logged in.

=== Oxygen looks good ===

I like the icons as well as the theme itself — its very slick, the window decorations are subtle yet stylish, over all I really like what the Oxygen folk have accomplished. Great job! The only sore point just sticks out for me is the look and feel of the current panel. Its too big, hardly configurable, the fonts are large and generally feels weird. Of course, this is all very much still in evolution and with user feedback, I’m sure it will develop into something totally kick ass.

=== KickOff mostly works ===

The new menu/launcher (Kickoff) is nice. I have used Kickoff in earlier incarnations of KDE so this wasn’t something totally revolutionary. Some things don’t work as advertised, however, but it might be due to my system configuration (still investigating). For instance, the KDE 3 applications are supposed to show up with a (KDE 3) next to them. However, when I search for say Kopete (for which I have both the KDE 3 and the KDE 4 versions installed), only the KDE 4 version gets listed.

=== KWin is smooth, not quite ready to replace Compiz-Fusion yet ===

With KDE 4.0, KWin gets native compositing support. The good thing is that it works nicely with the rest of the desktop (unlike Compiz Fusion, which still has some quirks when running in KDE). Things that work great: //Present Windows// (essentially Expose), //Desktop Grid//, Thumbnail previews, Shadows, Transparency etc.

Things I miss from Compiz Fusion: Desktop Cube, better keyboard bindings, plugin to easily take screenshots, and Shift switcher (like the Apple CoverFlow effect).

=== Phonon is sweet ===

Worked out of the box for me, using the Xine backend, which in turn automagically used ESD (well PulseAudio actually). It falls back to using the hardware directly if the ESD option fails for some reason. The sounds scheme is also subtle and fresh, I like it so far. In my regular KDE desktop I hardly have sounds enabled for any action or notification, but now I’m thinking maybe it is not such a bad idea after all. Sound can offer important cues without being intrusive like a visual bell or notification.

=== KRunner: a long way to go ===

I envision the new KRunner to become a universal search and action mechanism for KDE, just like Quicksilver is for Mac. I have written about Quicksilver alternatives for Linux before, but KRunner is nowhere even close. I have recently started using GNOME Do and it is shaping up rather nicely. In its current state, KRunner is just an application launcher with some goodies (like a Calculator, ability to launch web pages, web searches etc). Of course, under the hood a lot of the mechanism to build on top of it is already in place, but the functionality still needs to get to a point where it is useful to the user.

Even the application launching has quirks right now. For example, I open KRunner with ”Alt+F2” and start typing “Fire”. It gives me several options for Firefox, but the key bindings are not intuitive. If I press the arrow key (say I want to select the third option), it doesn’t let me. I first need to press Tab to get to the options listing and then the arrow keys work. There is a “Show Options” button that gets enabled if I click on an option, but it is not clear to me exact what it does.

I’m eager to see a proper plugin framework around KRunner so that people can start building actions to all kinds of services (both on the web and the desktop). A few example: amarok, kopete, kontact, beagle, strigi, google, remember the milk, twitter etc.

=== KDE 3 Apps work fine ===

I’m running Amarok, Kontact and Kopete and all seem to work fine. Oxygen integrates nicely with KDE 3 apps as well.

==== Overall: Exciting, stable but not ready for most users ====

Most of this is already well known. I do think distributions should be pro-active in advertising KDE 4.0 as a “Technology Preview” release. I really don’t think it is ready to be used by most people yet. The problem is not stability — it is very stable, and very fast. It is feature completeness: a lot of applications have not been ported yet, SystemSettings is missing a lot of modules, many things that users will expect are simply not there yet (configuring key bindings).

I’m expecting to see some quick point releases in the coming few months as the community pushes to bring KDE 4.x to a state where it is fit for consumption by the masses. As other pieces of the puzzle start to fit in (Akonadi, Strigi, Nepumuk etc), KDE 4 should evolve into a really fantastic platform. I’m excited! But for now, I might end up going back to KDE 3 :-)

Quicksilver alternatives for Linux

Everyone loves [[wp>Quicksilver_%28software%29|Quicksilver]]. If you don’t know [[http://docs.blacktree.com/quicksilver/what_is_quicksilver|what it is]], shame on you and you can’t call your self a geek. In either case, you should check out [[http://video.google.com/videoplay?docid=8493378861634507068&q=quicksilver&total=2518&start=0&num=10&so=0&type=search&plindex=1|this Google Tech Talk on Quicksilver]] by its creator.

While Quicksilver rules supreme as the king of universal access and action applications, what are Linux users supposed to do? Sit back and watch in painful agony as Mac users the world over gloat smugly with their shiny little toys? Hell no! I’m going to tell you about some Quicksilver alternatives (probably not as good though) for Linux. There do exist some alternatives for Windows as well, but that’s not the focus of this article.

**GNOME Do**

[[http://do.davebsd.com/|{{http://floatingsun.net/wordpress/wp-content/uploads/2007/12/do.png|GNOME Do}}]]

GNOME Do is a fairly recent entry in this already crowded space. [[http://video.google.com/videoplay?docid=-778606980239491978&hl=en|Here is a screencast]] that shows Do in action. It is being actively developed (and hopefully that continues!) by [[http://blog.davebsd.com/|David Siegel]], a CS student at UPenn. The interface and features seem to highly inspired by Quicksilver, which I think is a great thing. Now if only it wasn’t so tied into GNOME. See my wish list later in the post.

From the website:

//GNOME Do allows you to quickly search for many objects present in your GNOME desktop environment (applications, Evolution contacts, Firefox bookmarks, files, artists and albums in Rhythmbox, Pidgin buddies) and perform commonly used commands on those objects (Run, Open, Email, Chat, Play, etc.).//

**GNOME Launchbox**

GNOME Launchbox is a slightly older effort (and one of the inspirations for GNOME Do). It was started by some developers at [[http://www.imendio.com/|Imendio]] but seems to have fizzled out after an initial burst of activity. The interface is again very Quicksilver-ish.

From the website:

//Launch Box is generally an application launcher. It’s very influenced by Quicksilver for Mac OSX. Remember that this is only a first release so don’t get your hopes up too much. Launch Box is written for the GNOME 2.10 platform and depends on GTK+ 2.6, evolution-data-server 1.2 and gnome-menus. These are currently hard dependencies but the plan is to split out the backends into different optional backends.//


[[http://katapult.kde.org|Katapult]] started it’s life as an application on
[[http://kde-apps.org|KDE Apps]] around an year back. Since then it has
shifted it’s home a few times, finally landing up on kde.org as an “official”


From the KDE-Apps page:

//Katapult is an application for KDE, written in C++, designed to allow faster access to applications, bookmarks, and other items. It is plugin-based, so it can launch anything that is has a plugin for. Its display is driven by plugins as well, so its appearance is completely customizable. It was inspired by Quicksilver for OS X.//

Of all the applications mentioned thus far, I really only have used Katapult
and that too not a whole lot. But over all my experience has not been that
great. I mean it’s nice as an application launcher (and even then it is
sometimes quite slow), but I didn’t find much use for anything else
(calculator?!). Also, it didn’t play (and I don’t think it still does) well
with Compiz and friends (read ugly display).

**Deskbar Applet**

This is another GNOME centric application, probably the least inspired by
Quicksilver in terms of design and interface. I guess you could say it is more
like Spotlight in some respects.

[[http://raphael.slinckx.net/deskbar/|{{http://floatingsun.net/wordpress/wp-content/uploads/2007/12/launchbox.png|Deskbar Applet}}]]

From the website:

//The goal of DeskbarApplet is to provide an omnipresent versatile search interface. By typing search terms into the deskbar entry in your panel you are presented with the search results as you type.Seaches are handled by a series of plugins. DeskbarApplet provides a simple interface to manage these plugins to provide you with the search results that fit your needs.//

A new kid on the block, the “KRunner” application in the upcoming KDE4 release promises to be a better replacement for Katapult and the current KDE Run dialog. Unfortunately there is no single web page I can point to, and screenshots are spread all over the place. Besides, it is still very much in development and while I have toyed with it a little bit in my KDE 4 session, I really haven’t used it seriously.


So finally, here is my wish list:

* As with most applications in Linux, there is an initial outburst of applications to satisfy similar needs and user requirements. This confounds a lot of new users. Eventually, over time, one or two applications emerge victorious (there are exceptions, of course) but this is a gradual process of absorption, refinement and elimination. I would really love to see a single (or may be two at most) application combining the best technologies at hand (say GNOME Do, and KDE4 Krunner)
* Imitation is the best form of flattery: Quicksilver has gotten to where it is only with extensive community feedback. The model, plugins and user interface it has is PROVEN to work. Don’t try to reinvent the wheel. Steal concepts where possible and relevant! I can’t wait for the day when I will be able to brag about my increase in productivity because of this! Or be able to operate my entire work flow using a single interface: universal access and control baby! :-)

Inconsistent font rendering in GNOME and KDE

I’m running KDE on (K)Ubuntu Gutsy (7.10) and here’s the problem. I start KWrite and GEdit, and configure them to use the **exact same font**. However, the two applications render the same font very very differently. Check out these screenshots to see what I mean.

**KWrite with Inconsolata 11pt, 96 dpi**
{{http://floatingsun.net/wordpress/wp-content/uploads/2007/11/screenshot11.png|KWrite Inconsolata 11pt}}

**GEdit with Inconsolata 11pt, 96 dpi**
{{http://floatingsun.net/wordpress/wp-content/uploads/2007/11/screenshot12.png|GEdit Inconsolata 11pt}}

Dear lazy web, if any of you know how to get KDE and GNOME to render fonts in the same way, please let me know. I have made sure both KDE and GNOME are rendering fonts using the same DPI. I have tried with other fonts as well with similar results. I’ve always had issues with fonts rendering differently in GNOME and KDE, so this really isn’t a distribution specific problem.

**Update (11/01/07 2pm PST)**

Some useful links I discovered after writing this post:
* [[http://thread.gmane.org/gmane.comp.kde.general/15660|font size, dpi and rendering in KDE and GNOME]]
* [[http://scanline.ca/dpi/|X Server DPI]]
* [[http://www.mozilla.org/unix/dpi.html|http://www.mozilla.org/unix/dpi.html]]