10 Things I Love About KDE

Oh, man, a top ten list. Am I already scraping the bottom of the barrel? Don’t worry, friends. I have several articles on the back burner, but various endeavors are preventing me from completing them. So let’s just run through my favorite desktop environment ever. In no particular order, here are ten things I love about KDE.

Also I guess I should include this disclaimer as well: This list includes applications that run under KDE, so I’m including them here. So, KDE things and KDE apps. Don’t worry. I won’t mention Amarok unless I absolutely have to; everyone already knows it’s the quintessential music player.

1. KIOSlaves

KIOSlaves are heaven in an address bar. Need to access your filesystem? Go right ahead. Need to access your external USB stick? Type in ‘media:/’, and (assuming you’ve set up HAL correctly), you’re good to go. Need to access the man page for bash? Type in ‘man:/bash’, and there you are, nicely formatted and ready to read. Need to access your account on another server? Take your pick: ‘ftp:/’, ‘sftp:/’, ‘samba:/’, it’s all there. Combine this with the ability to access these file systems anywhere, from Konqueror to a random Save As dialog box, and you have an almost transparent, extensible power to get where you need, when you need to. It’s brilliant.

2. Krusader

For those of you even vaguely younger than me, weaned on ‘My Computer’ for years, you have no idea what an ‘orthodox’ file manager is. Quick history lesson: back when mouses were laughable newfangled toys, real men (and women) moved, deleted, copied, and managed their files in DOS, using programs like Norton Commander, which provided dual-pane access to your file system. Krusader brings this idea up to date with a vengeance: menus with customizable functions mean that even if this all powerful file manager doesn’t do what you want, adding your own functionality is a couple mouse clicks away. I can think of no other graphical program that allows me to explore an archive and extract some of its contents to a directory of my choosing by literally using three keys.

3. YaKuake

It’s a common joke that window managers are simply for keeping track of your terminal windows. Har har. Here’s an idea. Not using your terminal? Stuff it into the ceiling. Need it? Press F12 and it descends onto your desktop like a high school projector screen, customized exactly how you want it, and ready for your input. A tabbed console, transparency-ready terminal that’s literally named after one of the first shooters to feature such an interface, Yakuake will allow you to use the power of the console when you need to, and shove it aside when you need to.

4. Respect

KControl is the behemetoh control panel behind KDE, and when a setting is applied in it, all KDE-based apps quickly fall in line. Prefer single-clicking to double-clicking? Fine, it’ll work in Konqueror, Amarok, and Kopete the same exact way. Like your menus up at the top of the screen like Mac OS X? Perfect! All your programs will dutifully provide their menu so KDE can lovingly place it where it belongs. This wonderful ability to mix-and-match your preferences and know they’ll work everywhere else is huge, and a frequently overlooked effect of having a comprehensive set of apps that obey and understand each other.

5. KMyMoney

Okay, I’ll admit it. I’m not the best at keeping track of my money and finances. But KMyMoney is, so I don’t have to worry about it! Add your bank and the accounts under it, another account for the cash in your wallet, and start filling your ledgers with transactions, withdrawals, and ATM service charges to get an explicit and intricate overview of your financial life. As far as I can tell, it also appears to be able to handle certain online transactions, since it asks for your account numbers, but I haven’t explored that area (and that data isn’t mandatory). An oh yeah, an introduction to economics on its home page. Don’t you just love the free software community?

6. KDevelop

’nuff said, almost. One of the most comprehensive, full-fledged IDEs on the entire planet and don’t you forget it. All the goodies programmers love and use to increase their effectiveness, right alongside comprehensive documentation. If you can name a programming language, KDevelop will plop the word ‘Support’ after it and add it to their features list.

7. The Simple Things

Sometimes, it’s the little things that matter. If I want new eye-candy for my desktop, there’s a button in KControl that will literally download new wallpapers for me and allow me to check them out. If I have four virtual desktops and I want a different wallpaper on each one, I’m allowed to do that. Hell, I’m allowed to run programs as my background. It’s all okay with KDE. If I don’t want my CD-ROM to show up on my desktop when I insert a new disc, it’s a check box away. Chances are if you want to do it, KDE will let you do it, and even make it easier on you.

8. It’s About Choice Too

Need to make a few notes to yourself in plain English? Use KEdit. It’s a simple notepad. Need to write a shell script or edit a webpage? Use Kate. It’s a programmer’s editor, with line numbers, syntax highlighting, and plugs to make and the terminal. Why should you be either limited or overburdened? You get to choose what’s right not only for you, but for what you’re doing.

9. You Don’t Get Functionality Like This Just Anywhere, You Know

Microsoft Office comes with a word-processor, a spreadsheet editor, a database editor, and a slide show editor. KOffice comes with a word-processor, a spreadsheet editor, a database editor, a slide show editor, a flow-chart editor, a vector graphics program, a bitmap graphics program, a mathematical formula editor (that instantly exports to LaTeX), a project management program, and two programs I don’t entirely even understand the function of. And it’s all integrated with the rest of KDE. Drooling yet?

10. Outlook Killer? Okay!

All this and I haven’t even touched on one of the programs I use the most frequently: Kontact and its protege application, KMail. Keep track of your e-mail addresses, contacts, make small notes to yourself, mark scheduled dates on a calendar, read your RSS feeds, track items on your to-do list, write in a personal journal, and check the weather. And, of course, it’s integrated with everything else. Find a contact, look up their screen name, and in a second Kopete will be ready for you to send a message to them. It just makes sense like that.

Well, that’s a fairly exhaustive list. Coming up with it I happened upon quite a few things in my mind that I don’t like about KDE, but they were small and piddling things. Perhaps I shall list them too. But if this list doesn’t convince you to give KDE a shot, nothing will.

Is XGL a step in the right direction?

I have XGL installed on both of my Linux systems – both Gentoo, my distribution par excellence. Since it is extremely beta and buggy software, take everything I’m saying here with a grain of salt. I’ve had the chance to try it out, see how it responds, reacts, and so on and so forth. I’ve also had a chance to see how it fits into my life.

What is XGL? Wikipedia explains it best… actually, scratch that. In layman’s terms, XGL is a set of modules that sits on top of the window server, known as X11 or X.org, and provides new ways to interact with the desktop with plugin functionality. If I want my virtual desktops to be the faces of a cube and switch through them by rotating the cube, XGL makes that possible If I want to pretend my desktop is a pond and use my cursor to splash ripples through it, XGL makes that possible. If I want to see my windows bounce with a spring-like friction as I move them around the screen, XGL makes that possibe. If I instantly want all my windows visible to me at a key command, scurrying across the desktop to their proper places so I can choose which one has focus like the Queen’s cards in Alice and the Looking Glass, XGL makes that possible.

Clearly from that list, many things it does do actually sound helpful. Many things it does sound like the kind of things programmers write when they want to show off. In other words, a standard project in the exciting world of open source. It slams open a lot of doors, often without asking, and marches proudly into the future. But is it worth installing and dealing with?

Well, I’ve used it. I’ve seen the videos. I’ve played with the configuration options. One of the good/bad things about it is that every minor detail of the configuration of its plugins is manageable – windows have friction coefficients and spring constants so you can very precisely get the behavior you want in the wobbling windows and zoom effects. This is a good thing for me, because it appeals to my love of customization. This is a bad thing for me, and for others, because these options are only accessable through a very archaic (think Windows Registry) system of schemes in Gnome’s gconf-editor. A better interface and a more explicit set of documentation about the plugins and what they do would be very useful and helpful overall.

KDE working on top of XGL is horrendous. XGL, for the most part, is DE-neutral – except for a big part of the process, called gnome-window-decorator. It handles drawing the new window borders around each of your apps (your old customization will be gone) and works, acts, and reacts as if it’s in a Gnome environment, which is a bad thing for KDE users. As far as I can tell, it breaks the shortcuts that allow me to resize my window via Alt+Right Click, as well as the ‘mouse-over-focus’ model I’ve currently set up in KDE.

This doesn’t feel related to gnome-window-decorator, but it breaks nonetheless. If any window demands attention in the tray, it never stops demanding attention, even if you focus on the window, click on it, anything. This is perfect functionality out of KDE that’s somehow broken by XGL. For instant messengers and the like, this is almost a deal-breaker.

Another major complaint for me is that half of the shortcuts provided by XGL – the ones that involve the Alt and Super keys – don’t work whatsoever. I know those keys work – I spent an hour making sure my xkbmap is updated with the right model, variant, and layout. I have yet to try XGL in Gnome – its ‘native’ environment at the moment – but chances are this is a global thing, and the keymappings won’t be there, regardless of what DE I’m in. I’ve Googled around but haven’t found any other complaints, so chances are it’s a fault of the implementation I’m using: compiz-quinnstorm instead of compiz-vanilla. I may revert to compiz-vanilla just so I can see if the issue persists.

So my final thoughts? XGL breaks things. It doesn’t work in the environment I prefer using. It’s eye-candy, but that’s not a bad thing until it starts interfering with functionality, and XGL is walking a very fine line in that department. If a user-friendly interface were provided that allowed the average user to understand the various physics settings and what they would do to the eye-candy, then perhaps it wouldn’t be a completely lost cause. (Novell, does something like this exist?) KDE support needs to exist. It is a huge user base. I wish I could help other than complaining and filing bug reports, but I wouldn’t even know where to begin. So here are my complaints.

Additionally, feel free to let me know if any of my complaints are out of date. My version of compiz is from June 26, and we all know how fast development flies when you’re not paying attention.

Linux Boot Time

This is one of the few things that worries me about acceptance of Linux. 30 seconds. That’s the average boot time of Linux on my fastest machine – an HP Pavilion zv6000. This, mind you, is with InitNG, a brand new concurrent-threading system that excels at what it does – run several things in tandem when the kernel is booted – but does poorly at what it advertises – makes boot times faster by an extraordinary amount.

I know what people looove saying because I’ve heard it before: Linux boot time is not an issue. Linux doesn’t need to boot. Don’t worry about it. And I’m saying, yes, I’m worrying about it, because I have a laptop that doesn’t adequately understand how to hibernate, so I have to boot it every time, and every time it takes 30 seconds. My Windows XP machine takes less time to boot. And that’s depressing.

There may be hope, but damned if I can understand it. The LinuxBIOS project aims at replacing vendor-based BIOSes with a Linux kernel, making startup for cluster nodes and the like faster and easier to maintain. I’ve read over the FAQ several times now and still don’t understand if this has any benefits for consumer-grade systems. Could the BIOS immediately boot the Linux kernel of my distribution? How much faster would it be? Until anyone provides those answers, I’m going to be highly pessimistic about the use of LinuxBIOS for end-users like me.

So what can be done? Cursory glances over the Gentoo forums suggest that the only way to speed up boot time isto not run non-critical services. Problem is, all my services are critical. That’s why I run them. I’m doing LAMP development on my laptop, I need Apache, MySQL, so on, so forth, running when I start. The only time I stop running these services is if I need to rely on my battery surviving more than a half an hour.

So how is it going to be? Is Linux boot going to be stuck in this era?

KDE and the Ugliness Department

This is something that really deserves its own post. KDE, my favorite Desktop Environment in the world, is ugly. Clinically ugly. It suffers horribly because of it. When your screen isn’t filled with dull grey across the board, it’s filled with innumerable options packed in varyingly confusing configurations.

It isn’t all bad, it’s said. People can contribute – themes, wallpapers, icons, anything to make KDE look as good as it performs (although some would say that’s already the case, compliment or insult). One doesn’t have to be a computer-savvy programmer to help improve the aesthetics, just download a free copy of the Gimp and get cracking on the war for visual contentment! That’s what we can do about it!

But, really, what can we do about it? Suprisingly little, it seems. Visits to the resident spruce-up authority, KDE-Look, are always awkward and short. Gnome-Look almost inevitably sports bigger, better, brighter, cleaner, and all around better-looking themes, fonts, widgets, and login-manager screens. It is almost as if all the Mac users in the world released the pent-up energy from not being able to customize their OS and it all fell on the next-closest GUI. KDE-Look more often is filled with brilliant ideas and brainstorms for KDE4 than muted color schemes and pleasant details.

It seems that KDE is stuck being the workhorse DE, and Gnome is stuck being the showhorse DE. Is there any reconciling them?

KDE’s Flaws

Don’t get me wrong. I absolutely love KDE. I love how it’s integrated, clean when it needs to be, and affords me nearly limitless customization. I feel that’s the pinnacle of the freedom and choice that we all appreciate when it comes to open source. KDE and its related programs are joys to use, but they’re not perfect.

Also, a warning. As far as I know bug reports/wishlists already exist for most of the things I care about, which is why I’m just talking about it here. I have a feeling KDE4 is going to blow us all away, so these aren’t huge concerns. That being said, my issues with KDE include:

  • The taskbar must always show the title of the applications on it. Both KDE and Gnome have this issue, but I’m categorizing it as a KDE flaw since this is supposed to be the wonderfully versatile desktop environment. I just want icons on my taskbar. It’s bloated enough as it is, let me just see the icons. Xfce does this, blackbox does this, why can’t KDE? It’s a simple thing and would allow KDE to keep the title for ‘Most Options in a Desktop Environment’.
  • Spacing in list widgets cannot be altered. This bugs me. I love KMail, but it always seemed a little — compressed — to me. Then I realized, there were almost no pixels of space between items in my inbox. This has more to do with QT and its widgetset, but if the widget has the ability to alter its height (which it does), then KDE should offer some setting in the control panel for its apps to follow.

That’s all I can think of for now, but I consider them fairly legitimate concerns. If I have any more I’ll write about them.

The GIMP’s alignment tools could not work any worse if they tried.

And that includes if they completely turned off the functionality and left the buttons in the interface.

I tried three or four different methods of trying to align two icons to the center of my canvas. Those methods included linking them together and using the align tool, linking them to the background and using the align tool, making all other layers invisible and using the align tool, and so on and so forth. By the end I was rewarded – with one of the icons in the center, not the other. How is it even possible to have an algorithm that works so – selectively?

I’m going to look around and read up on it, although searching for ‘Gimp align layers’ with Google produces no useful results. Of course, the name of the book that can help, “Grokking the Gimp”, just occurred to me, so this post may be null and void. It’s still horrendously unintuitive, even if it does work the way it’s supposed to.

Update: Grokking the Gimp – which is provided online, for free, only mentions aligning layers with guides. Guides, which, as far as I can tell, can only be placed arbitrarily, and not exactly in the center of the image in any way. So I’m back to square one. I’m actually using an alpha of the Gimp which has another align tool function, but it does not work yet either. The Gimp is a great program and I used to love using it. I’ll follow the mailing lists a while, and see what the developers are doing in this area.

Subversion Sucks.

Seriously. At this point I’ve read the entire book ‘Version Control with Subversion’, read about nine separate tutorials on how to install it and configure authentication, and tried to install two separate web-based SVN managers. None of it works. It’s all horrendously broken. I can’t even comment on whether or not it’s a good technology because it refuses to work completely. And of course if I ask for help anywhere I’ll just get directed to read the book, read the manpages, read the user guides, and none of it works because veryone who sets up subversion has a better way of doing it than you. It’s ridiculous.

For example, here’s what I’ve tried to do. I’ve tried to install subversion and create the repositories manually. I actually got the furthest with this method. Created my repositories ( /svn/repositories/whatever1, et cetera ), uploaded my initial import, set up an svn group and user, and individual groups for each repository, added my regular user to those groups, checked out my code, made some changes, and then tried to commit it again. The error: permission denied on db/transactions/1-1.txn. And I can’t figure out what it means. What permissions? Who’s trying to access that? Why is it necessary? Why doesn’t my user have those permissions when I attributed everything correctly? And of course the documentation doesn’t provide any answers.

Then I tried using SVNManager, which is supposed to make it easier to handle creation and administration of repositories. Set it up exactly how I’m supposed to, using their way of handling repositories, which is completely different from the instructions I was following doing it manually. Launch it in my browser: blank screen. The webapp is running, but it’s total output is: nothing.

Then I tried using rapidSVN, a program put out by Collabnet to make dealing with Subversion easier. I install it from portage, and it segfaults. Nothing else.

At this point I’m at my wit’s end, so I go back to the Subversion book, reading carefully over the chapters on installation and maintenance, and I know almost immediately it’s going to be no help at all. Quoting from this chapter:

Creating a Subversion repository is an incredibly simple task. The svnadmin utility, provided with Subversion, has a subcommand for doing just that. To create a new repository, just run:

$ svnadmin create /path/to/repos

No, it’s not that simple, and no it’s not ‘just run’. Where should the repositories reside? What are some normal defaults for this sort of situation? What do the authors recommend? What should the permissions of the repository paths be? What should the permissions of the repository root folder be? It’s never ‘just run’.

I’ve now wasted the better part of two days working on this and I’m in exactly the same place I was before. I was hoping to use my four day weekend to learn more about version control. And I’m in exactly the same place I was four days ago.