This is a read-only archive!

48 Posts Tagged 'KDE' RSS

X automation with xte

I learned today (via a great blog post) about xte. This program lets you simulate X Windows mouse and keyboard events from the commandline. How much more awesome can you get?

Hans illustrates how to integrate xbindkeys and xte to make KDE4 effects activate. I wanted the KDE4 "Desktop Grid" to appear when I press a mouse button (because my new mouse has a lot of buttons to spare), so this is exactly what I was looking for.

xte is the kind of glue that makes Linux awesome. KDE lets you set global keyboard shortcuts for lots of things. xbindkeys lets you assign shell commands to mouse buttons. And xte ties the two together. Possibly none of the programmers on these three tools knew about the others, but they interact perfectly to let you do anything you want.

You may be thinking, "If you want to work with KDE from the commandline, why not use DBUS?" That's what I tried to do first. But I can't for the life of me figure it out. There's some indication that we might be able to do this somday, like so:

qdbus org.kde.kglobalaccel /component/kwin org.kde.kglobalaccel.Component.invokeShortcut ShowDesktopGrid

Or maybe it's already in the latest version of KDE and I haven't upgraded yet. Either way.

By the way: could DBUS possibly have a more verbose or cryptic interface? I was hunting through the available DBUS commands looking for something that would show the Desktop Grid, and I ended up having to scan through lists of crap like this:

~ % qdbus org.kde.kwin /KWin                         
method Q_NOREPLY void org.kde.KWin.cascadeDesktop()
method void org.kde.KWin.circulateDesktopApplications()
method bool org.kde.KWin.compositingActive()
signal void org.kde.KWin.compositingToggled(bool active)
method int org.kde.KWin.currentDesktop()
method QList<int> org.kde.KWin.decorationSupportedColors()
method void org.kde.KWin.doNotManage(QString name)
method Q_NOREPLY void org.kde.KWin.killWindow()
method QStringList org.kde.KWin.listOfEffects()
method void org.kde.KWin.loadEffect(QString name)
method QStringList org.kde.KWin.loadedEffects()
method void org.kde.KWin.nextDesktop()
method void org.kde.KWin.previousDesktop()
method Q_NOREPLY void org.kde.KWin.reconfigure()
method void org.kde.KWin.reconfigureEffect(QString name)
method void org.kde.KWin.refresh()
signal void org.kde.KWin.reinitCompositing()
signal void org.kde.KWin.reloadConfig()
method bool org.kde.KWin.setCurrentDesktop(int desktop)
method void org.kde.KWin.showWindowMenuAt(qlonglong winId, int x, int y)
method Q_NOREPLY void org.kde.KWin.toggleCompositing()
method void org.kde.KWin.toggleEffect(QString name)
method Q_NOREPLY void org.kde.KWin.unclutterDesktop()
method void org.kde.KWin.unloadEffect(QString name)
method bool org.kde.KWin.waitForCompositingSetup()
method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)
method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface_name)
method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)
method QString org.freedesktop.DBus.Introspectable.Introspect()

This is line noise to me.

August 06, 2010 @ 6:03 AM PDT
Cateogory: Linux
Tags: Hardware, KDE, Xorg

Screenshot June 2010

I haven't posted one of these in a while. I've been in an 8-bit kind of mindset for a while:

Screenshot

What I actually stare at for 8 hours every day:

Screenshot

KDE4, Buuf icons, QtCurve, wallpaper is from somewhere on the internets.

June 08, 2010 @ 5:27 AM PDT
Cateogory: Linux

Fluxbox, we meet again

I'm sort of tired of KDE4 crashing left and right and Plasma barfing all over me all day. So I decided to check out the current state of lightweight window managers.

Lo and behold, Fluxbox is still going strong. It was the first WM I used way back in 2000-something when I started using Linux full-time. Last time I tried, there were always weird compatibility problems with system tray icons and pagers working properly when running a mix of KDE and Gnome and other apps, but those seem to have cleared up nicely; I have yet to hit any snags. Here's a screenshot.

Fluxbox

This took very minimal effort to install and set up. Maybe a couple hours total. I'm using ipager and conky. The wallpaper comes from the UniQ KDE theme. Vim and Emacs themes are my own.

The Fluxbox style is mydefcon_4 from tenr.de which is probably the largest and most thorough set of themes created by one person that I've witnessed. That fellow is motivated.

For all the bells and whistles of KDE4, what features did I actually use regularly?

  1. A menu of apps
  2. Taskbar + System tray + Clock
  3. KWin's good window management.
  4. Global keyboard shortcuts galore
  5. One widget: current CPU/RAM/Network usage
  6. Mouse/keyboard management, background-setting, etc.

Fluxbox gives me all but number 5, and Conky gives me that. Number 6 you can do with xset and feh and such.

And I like being motivated to use keyboard shortcuts for more things. I'm already halfway there. Maybe I can take the plunge eventually and try a tiling window manager. Not sure I've reached that level of nerditude yet though.

And now I can move and resize windows without my graphics card bursting into flames. Maybe when I can afford a few more cores worth of CPU I'll try KDE4 again. Honestly I think I have too much monitor real-estate for my ancient computer to handle smoothly in KDE4.

Not to knock KDE4; it's awesome and I'll probably go back someday. But everyone needs a break now and then.

November 15, 2009 @ 8:32 AM PST
Cateogory: Linux

Amarok 2.2: DISBER GROGTH GROCKS

Remember Amarok 1.4? Remember how awesome it was? Here's a screenshot just in case you don't remember.

Amarok1.4

Does it bring back fond memories of music and comfortable GUI interfaces? It does for me. Those were good times. Keep that picture in mind.

Let's play a game called "Can we make Amarok 2.2 look like Amarok 1.4"? I've heard this as a response to complaints about Amarok 2's GUI: You can make it look like Amarok 1.4 if you want.

So let's try. Ready? Here it is:

Amarok2.2

Does it look the same? Not really. Kind of close. That's as good as I could do though. There are no headers on the columns in the playlist, so you can't tell what half of those things mean. You can't resize the fields (like you could in 1.4). You can't sort them by a simple click of a header (like you could in 1.4); instead you have that strange breadcrumb thing up there. You can't add new fields by right-clicking and picking them from a menu (as you could in 1.4). Not as many songs fit in the playlist in 2.2, but it's pretty close.

Now, here's the good part. How do you get Amarok 2.2 to look this way? By doing THIS!

Amarok2.2

AAHHHHHHH! Too bad Halloween is gone, because I could use that dialog to scare children. The title of this blog post, DISBER GROGTH GROCKS, comes from the mangled and truncated labels in that horizontally-scrolling list of icons. Doesn't it sound like the deranged grunting of a once-proud beast, now fallen into ruin, stumbling zombie-like through the world, a mere shambles of its former self? I think so.

Once in a blue moon, I'll witness the behavior of an application that's so off-the-wall, bat-honking insane that I'm reduced to maniacal laughter. That's not an exaggeration; I literally gape at the computer screen and cackle like a madman, curling reflexively into a fetal position. This was one of those times.

It took me well over a half hour to drag and drop all of those controls into that window in the right order with dividers between them. Thank God for 1920x1200 monitors or the dialog wouldn't even have fit on the screen. (No, it's not resizable.)

Why a half hour? Because I also had to click every single one of those elements and set its width as a percentage using a slider in a sub-dialog. By default every field is an equal width, so that a field with a single digit in it has a mile of whitespace on either side, while song titles are displayed as "C...". And this dialog is the only way to fix it:

Amarok2.2

How did I come up with 25% there? Laborious trial-and-error. Amarok 2.2. takes what was a click-and-drag-to-resize operation in every other application ever written, and turns it into an algebra problem. Twelve fields I had to tweak, one by one. I was probably in and out of that dialog 3 or 4 dozen times.

(I'll spare you what happens when you resize the window in Amarok 2.2. Suffice it to say once you get it looking OK, never touch it again.)

Now, I'm no expert on GUI design. But I'm guessing there's a reason most applications don't do things this way. Columns of data with headers at the top are nice. They're kind of boring, but they're boring like a doorknob. You turn it and the door opens. There isn't much room (or need) for improvement. I don't want to have to solve a logic puzzle to get out of the bathroom every morning, and I don't want to play a video game of line-up-the-widgets and guess-the-percentages just to get a playlist to display some fields of information.

In Amarok 2.2 there's also no button for Repeat/Shuffle, and the Equalizer tells me it disabled itself because I don't have the right version of Phonon, and the collection list is very unresponsive (even expanding / collapsing an artist's albums lags), and there are no visualizations, and no themes, and the volume slider is hidden behind a button in the bottom-right there unlike Amarok 1.4's perfectly functional slider, and well you get the picture. But hey, you can browse Flickr in Amarok now. Finally!

Amarok 2.2 is what I'd now call "just barely usable", which is actually an improvement from previous versions, but that's not saying much. I've used it for over a month, only because 1.4 can no longer even scan a collection on my computer, Last.fm is broken, and I got a notice today that Gentoo is deprecating KDE3 entirely. Amarok 1.4 is the new XMMS; Qt3 is the new GTK1. Some people will cling to them, somehow barely keeping them running on their systems, until bitrot and neglect force them to fade away into history, whether there's a good replacement around or not.

I was a huge cheerleader for Amarok 1.4; it was a flagship KDE / Linux GUI app. Now I don't know what to say. Final grade, Amarok 2.2: D+. It avoided an F because I can get sound to come out of it, and it didn't erase my hard drive.

(Anyone out there reading this, if you port Amarok 1.4 to Qt4 intact, I will pay you. Seriously. I will pay you money.)

November 05, 2009 @ 5:14 PM PST
Cateogory: Linux
Tags: KDE, Amarok

KMail is slow

KMail is a pretty good app, except that it's slow as glacier. If I select a few thousand spam emails in KMail (4.3.2) sitting on my IMAP server, and I try to delete them, KMail laboriously iterates through them deleting them one at a time and updating the GUI after every deletion. I'd say it averages about 4 or 5 emails deleted per second. Yes, for a few thousand emails this adds up to 10-15 minutes of waiting.

I got tired of waiting, so I decided to try out Mutt for the first time. In Mutt apparently you can delete a folder full of emails by pressing D and then specifying ~s .* as the search pattern. Mutt deleted 8,000 spam emails for me instantaneously.

This is what I get when I ignore the collective wisdom of the Linux group-mind. I've long heard that Mutt is good but I never bothered trying it, because Thunderbird and KMail and friends were "good enough".

Complacency, my old nemesis. You have beaten me again. But I am now going to give Mutt a good try. Next on the list is zsh.

October 18, 2009 @ 6:38 AM PDT
Cateogory: Linux
Tags: Email, KDE, Linux, KMail

Force Google Chromium to have a normal title bar in KDE

KDE is awesome largely because KWin is awesome. If I had to name one reason I gave up using Gnome and moved to KDE, it'd be KWin.

Some programs (for example, Songbird, aTunes, Google Chrom(e|ium)) try to manage their own windows in silly ways like hiding their title bars and window borders, or fiddling with how they appear in pagers or task managers / application lists, or trying to manage their own sizes and positions. KWin lets you override and force sane preferences upon such programs.

Chromium for Linux is nice enough to give you an option to "Use system title bar and borders" if you right-click the top. But this only changes how Chrome looks; it doesn't make the KWin title bar and borders appear.

Why would you want KWin title bar and borders? Because by default, Chromium's self-managed title bar only gives you Windowsy options like minimize/maximize/close. It doesn't give you Linuxy options like double-clicking the title bar to window-shade the window, or right-clicking the title bar to get the KDE menu to send it between desktops or make it Always on Top, and such goodness. If I wanted gimped up window management I'd go use Windows 95.

September 18, 2009 @ 6:58 PM PDT
Cateogory: Linux

Plamsa + Ruby = Ouch

I wrote my first KDE4 plasmoid the other day. I can't release it because it's essentially a clone of something you aren't allowed to copy (maybe I can replace him with a penguin and release it that way though).

But I need to rewrite it first anyways, because I did it using the Ruby bindings for Qt4 and Plasma, and wow it's painful. It has a 50/50 shot of even initializing at any given point. When it does initialize, it has about a 1 on 8 chance of immediately crashing Plasma. And some things I just can't get to work at all, e.g. setting a default size or resizing the applet programmatically; X-Plasma-DefaultSize in the metadata is supposed to do it but it does nothing. And it's not just my system (using KDE 4.3), because I tried it on a Kubuntu machine using stable KDE 4.2 and had the same problems.

The other snag is that the documentation of the Plasma API is buried so deep on the KDE site that I don't even know how I found it. Here it is for those who care (and for my own future reference). I hit lots of dead links on the KDE site on the way there.

Next step is to rewrite the plasmoid in Python or C++ I guess.

September 08, 2009 @ 4:34 PM PDT
Cateogory: Programming
Tags: KDE, Ruby, Plasma

Way to go, Arch

KDE 4.3 is available in Arch already. If the Arch MB is to be believed, it was available for install a few hours before KDE even announced it. Good job Arch devs. Arch seems to have pretty fast turnaround on new packages.

The stable release of KDE 4.3 is looking good too. I wiped my KDE profile because I think I've been running the same one since KDE 3.1 and the cruft was becoming noticeable. That helped resolve a lot of things (I can add widgets to the main panel without crashing things now).

One thing that has caused me tons of problems historically is CJK input in KDE. In KDE3 Skim worked OK, but I couldn't get it to work in KDE4. Instead there's UIM which so far has been better than Skim in terms of stability and predictability of interface.

As per a comment by knef on a recent post, you can set per-desktop wallpapers now (as in virtual desktops, workspaces, whatever you call them). You have to:

  1. Zoom out (via the cashew)
  2. Hope it doesn't crash
  3. Go into the Plasma options there
  4. Pray it doesn't crash
  5. Enable the setting to make each desktop have its own "activity"
  6. Yeah you probably crashed right here. In the off chance you didn't crash, once you zoom in you can set per-desktop wallpapers now.

Not just wallpapers, but widgets in general. This is kind of good, kind of bad. If you want to go back to a single wallpaper per desktop, you have to go back and screw with activities. Also I don't think you can "sticky" a widget to span all desktops. It's either everything per-desktop or everything global. I'd bet this will change in future versions.

But I read a suggestion somewhere (probably Slashdot) to set up a different Folder View on each desktop, each pointing to a different folder, and that's actually a great idea. You can set kwin to always open Gimp on a certain desktop and have a folder view of your pictures folder underneath, or something.

Kudos KDE devs, KDE is awesome and keeps getting better.

This post is related to KDE 4.3 Looking Good
August 04, 2009 @ 1:38 PM PDT
Cateogory: Linux
Tags: KDE, Linux, Arch

KDE 4.3 Looking Good

I just installed KDE 4.3 and it's looking good. Some features returned that I was missing. You can now once again display applications by name rather than description in the K-menu. You can now enable a nice kcontrol-like tree-view in the System Settings.

Some things are still missing though... like different wallpapers on different desktops. There are "Activities" which can have different wallpapers, but I can't for the life of me figure out how I'm supposed to be using them. I also lag and/or crash every time I Zoom Out in the cashew, possibly thanks to 3840x1200 screen resolution. I'm going to assume Activities are still a work-in-progress.

I was horrified to open Kopete and see that configuring the contact list window now uses the same completely broken configuration dialog that Amarok 2 uses for their playlist. Oh how I hope someone rethinks this.

There's a new Qt and Plasma theme in KDE 4.3 that looks pretty nice. Overall every release of KDE4 seems to become more stable, more polished, more eye-candy (if you want it).

July 25, 2009 @ 12:48 PM PDT
Cateogory: Linux
Tags: KDE, Linux

Songbird vs. Amarok: How not to design a GUI

Recently I forced myself to uninstall Amarok 1.4 and try Amarok 2 again. I saw there were some nice updates to the interface coming in the next version so I grabbed the latest version from SVN.

I very quickly started looking for other alternatives, and you'll soon see why. The best I could find was Songbird.

I'll start with a disclaimer that both of these programs are great, and they are free. I am not suggesting, let alone demanding, that anyone change anything in either program to suit me. Kudos and thanks to the devs of both. These two programs are both probably better apps than I could dream of coding. Feel free to respond "Ask for a refund" and "Fix it yourself" anyways if you like. I think it's still useful to give some constructive feedback, and maybe I'll learn something myself about how to make a good GUI along the way.

Next I'll start with my conclusion, so you don't have to read further, because this is admittedly long. Amarok 2's interface is extremely painful, but at least it plays music. Songbird has a wonderful interface, much like Amarok 1.4 had a wonderful interface; if only I could get Songbird to make sound come out of my speakers, I'd be set.

I think it's interesting to compare Songbird and Amarok 2, both being bleeding-edge music players for Linux with a similar philosophy and feature set. So let's compare GUIs. I sized the two windows exactly the same and tried to have them display mostly the same bits of information, so it'd be easy to compare. Click below for larger versions.

Amarok 2:

Amarok 2

Songbird:

Songbird

Playlist

In Songbird the playlist dominates the window by default. This is good because seeing a list of music is what I want. It's the whole point of a music player.

I strongly dislike the "filter pane" style of browsing my music. Thankfully you can turn it off in Songbird. You can also install "cover flow" sorts of eye-candy extensions if that floats your boat. I avoid such things, and Songbird's interface is easy and comfortable by default.

In Amarok by default the playlist is a little sliver of GUI off on the right, and the middle context pane dominates the window. Enough people complained about this that in later versions you can turn off the context view entirely, in which case the playlist will stretch to a reasonable size. Whether the information in it will look good is another story (see below).

Amarok's "Local Collection" browser is an expandable tree. You can customize how things are grouped. This was great in Amarok 1.4. It works similarly here. It's not as lightweight or responsive as in 1.4, but I can't complain. By default it's way on the left, with the playlist way on the right and the context view in between, but in later version of Amarok you can change the order of the panes.

I'll call this a tie even though you have to fight for it in Amarok.

Sorting the playlist

Songbird has a bunch of columns with column headers. To sort things you click the headers. Note that this is how Amarok 1.4 worked. This is how every program in the universe works.

In Amarok you have drop-down menus that you can add and remove with buttons, and you pick sorting criteria from that list, left-to-right in order of priority. This is clumsy. According to the devs' blogs this part of the GUI is a work in progress, which is fine, maybe it'll improve.

But note that the design of Amarok's playlist fundamentally limits the ways you can sort it. There have to be some magic GUI controls floating up top, disconnected from the playlist. You aren't going to get a bunch of column headers that you can click because the playlist isn't just rows and columns. Each song in the playlist can take up more than one row and there are grouping-headers interspersed. This is painful and I imagine it's always going to be painful.

Playlist readability

There are no labels in the Amarok playlist to tell you what information you're looking at in the playlist. I initially customized my playlist to show disc number and track number. Doing so, you get a bunch of numbers. What do the numbers mean? At a glance you can't tell. Am I looking at an Artist or Composer? Play Count, or Score? Does that big empty space mean my song is missing a Genre or missing a Year?

In Songbird the columns have headers.

Playlist length

How many songs can you squeeze into the playlist vertically? This is an important metric for me. I want to be able to find a song quickly without scrolling through a list for a year and a half. Sure I can search, but search doesn't replace my eyes in all circumstances.

In Songbird even with those filter panes above the playlist it fits a few more songs than Amarok. You can turn off the filter panes entirely, in which case you can display tons more songs in Songbird than in Amarok. Songbird wins.

In Amarok, by default the playlist has a bunch of multi-row header stuff mixed into the middle of your playlist to show artists and album names and cover art. You can make the headers not take up so much room (or turn them off entirely), in which case Amarok gets pretty close to Songbird. You'll just do without album or artist names. Unless you can manage to cram them into the playlist in the rows beside the track titles.

Which brings us to our major problem...

Playlist customizability

In Songbird you can right click and add and remove columns. You can drag-and-drop columns to rearrange them. You can drag the edges of the columns to resize them. It's simple and it works. This is how Amarok 1.4 worked too.

Amarok fails hard in comparison. In Amarok to customize the playlist you go into a special dialog. You pick your components from a horizontally-scrolling list of huge icons. Then you arrange them into rows.

You can put two or more items side-by-side in which case they become multiple columns on that row in the playlist. Kind of. To control the width of the columns, you hover over that component in this magical dialog, and a weird circular icon appears. When you click it, a drop-down appears with a microscopic slider at the bottom that looks like it was pulled from KDE2. This is the only way to resize columns in the playlist. Here's a screenshot.

Amarok 2

What in the world is this? What are simple drag-and-drop operations in Songbird and every other application ever made, are buried in this cryptic dialog under non-standard controls in Amarok. I've been using KDE and Amarok for a long time and it took me a good couple minutes to even figure out how this thing works.

I think the widths are percentages and have to add up to 100%, I don't even know. The slider is so small that if you drag it one pixel it usually jumps 5-10%, so it's nearly impossible to get anything to look nice. And when you resize the Amaork window later, the columns don't resize sanely; some fields are smashed into each other or overlap as others take up too much space.

Maybe this will all be fixed before the next release; I realize I'm looking at bleeding-edge pre-release software. But this whole idea is so fundamentally broken I don't know how it's going to be salvaged.

I've heard many times that "You can make Amarok 2 look like Amarok 1". No you can't. You can tediously stuff lots of information into the playlist so that it approaches the level of info you could easily and painlessly get in Amarok 1.4. But it will neither look nor act anything like Amarok 1.4. Resizing the playlist will break things. Nothing is labeled. Nothing is easily customizable.

Playlist consistency

Songs in Amarok are grouped into albums by default. If you have a song that doesn't belong to any album, it's displayed completely differently than a song that does. You can alter this in the scary playlist editor dialog mentioned above, under the "Single" tab (as opposed to "Head" and "Body" which control the "grouped" songs). Sound confusing? It is. Needlessly so.

In Songbird songs are displayed the same whether they belong to an album or not, since the play list is just a list of songs. This seems like it should be a no-brainer.

Playlist: overall

Amarok 2's playlist is unique, imaginative, and I'm sure it's a clever bit of code. It's also nearly unusable.

Why can't we have a grid of rows and columns? There's a good reason so many apps use such a control. It's simple and familiar and it works. I'm open to learning something new if it's an improvement. Amarok 2's playlist is not an improvement. Why can't the playlist be a simple list of things to play?

There's nothing about QT4 preventing someone from making a good GUI. Look at ktorrent.

The little things

Say I want to email or IM someone and ask them if they like some artist, whose name happens to be Japanese and difficult to type on my gaijin keyboard. How do you copy and paste the name of an album or artist in Amarok 2? In Amarok 1 you could just click any field in the playlist twice, and it'd let you edit or copy/paste that field inline. Same in Songbird.

In Amarok 2, you have to right click and go into the Edit Song Details dialog, and do it from there, then close the dialog. A tiny step backwards.

How do you change the rating of a song? In Songbird you click the stars in the playlist beside the song you care about. Same in Amarok 1.4.

In Amarok 2, you can display the stars for each song in the playlist, but to change the rating you have to click in the context pane. (So if you dislike and therefore hide the context pane, you're screwed.) Clicking in the playlist does nothing. A tiny step backwards.

All of these tiny steps add up.

Extras

So how well does each player serve as a web browser?

This seems like a ridiculous question, except that both really do try to be a web browser. You can open song lyrics and wikipedia pages and such things right in the music player. I find these features nearly useless. Lyrics are nice when it works (which isn't often, for the music I listen to), but browsing Flickr? Really? Does someone really use this?

Songbird does use its inline browser in a nice way to let you browse and install addons from the Songbird website, and Songbird has a cool feature to let you rip audio files from web pages. Amarok doesn't have these, but I don't hold that against it. I can easily live without any of this stuff.

So in Songbird you have an embedded Mozilla engine. It's hidden behind a tab. You can just avoid opening such a tab and then you don't see it. You can even hide the tab bar itself. Victory.

In Amarok the browser stuff inhabits the middle context pain. The size is limited for this pane, which means information is crammed into the available space, which greatly limits its use. It's also clumsy and difficult to turn components on and off, and I can't figure out how to resize them. The context view itself is either in your face, taking up most of your screen real estate, or it's gone and not easily retrievable.

Note in the screenshot, how in Songbird the lyrics pane is big enough to display all the lyrics, yet small enough not to be annoying. You can also hide the pane (as you can hide every other pane in the GUI) via that tiny button with an arrow under the pane. Amarok's lyrics widget is either too big (if you let it occupy the whole content pane) or too small (if you want to have anything else in the pane with it).

Note that Songbird's lyrics pane is added via an addon. It's a completely optional part of the GUI, which is nice. (Note that Songbird also mangles certain text in the lyrics due to encoding problems, which is a point against it.)

Wasted screen real estate

See that tiny little red icon in the bottom-right of Songbird? That's the Last.fm integration. It's all hidden in a little square of pixels, out of my face, not sucking up screen real estate. This is a common theme in Songbird. Everything is tiny and/or hideable. Tiny is good.

In Amarok everything is huge and round. Even ignoring the content pane, there's white space everywhere. There are buttons strewn all over the interface, like the seven in the lower right. Export Playlist? Does that really need a button? And other buttons appear (and disappear) in awkward positions at the top. "Add Position Marker"? Does this really deserve a prominent button right beside the main play controls?

And yet things I do need buttons for, such as changing the Skip or Repeat options, have no buttons. This is possibly the first player I've ever used that doesn't have a button for Skip and Repeat.

GUI skinning

Songbird is skinnable. So was Amarok 1.4, to a degree. Amarok 2 isn't and I don't know if it ever plans to be. I can live without skins but it's nice to have the option.

Desktop environment integration

As one might imagine, Amarok wins here, if you use KDE, as I do. Global keyboard shortcuts are already set up, it sits in the system tray, and there are nice Plasma applets you can put on your desktop.

Songbird meanwhile does not play nice. First, it has window hints set to hide its border and window title bar, and it tries (and fails) to manage windows itself, giving your window manager the middle finger. I had to force kwin to display the title bar and border just so I could resize certain dialogs that were otherwise broken.

Then, Songbird doesn't sit in the system tray. You can force it down there via alltray, but right-clicking the icon doesn't give you Play/Pause/Next/Back options like in Amarok.

There are no global hotkeys, but you can easily fix this in KDE too because you can set your own global hotkeys to do anything, and Songbird has a commandline interface to let you do what you need. It's still not as graceful as Amarok.

So KDE thankfully rescues Songbird from its own deficiencies, which is nice. Except...

Playing music

Ah, Songbird. Why oh why won't you work? Songbird uses gstreamer. In my years of bouncing between Gnome and KDE and XFCE and others, and using various distros, gstreamer has never worked for me consistently. I can get Songbird to play music, but Flash videos stop producing sound while Songbird is running. This is a known and reported bug, I'm not the only one. While Songbird is playing, other KDE apps randomly produce sound or not depending on the phase of the moon.

Amarok actually plays music, so I'm stuck with it. Unless I go back to Amarok 1.4 which I may still do.

Conclusion

Songbird is pretty good. If I can figure out how to make gstreamer play nice, I'll probably use it.

Otherwise just consider this yet another voice in the wilderness wishing for a Qt4 version of Amarok 1.4. There was nothing wrong with it, from a user's perspective. I'm not the first wishing for this, and won't be the last. If I had a couple years to get good at C++ and a team of programmers to help, I'd probably try it myself.

Why write an 87-page essay about the GUI of a music player? Because Amarok 1.4 was a really good program. I'm a programmer and I appreciate a good program. Songbird has a pretty darned good GUI too. It's painful to see Amarok 2 going in this direction.

July 11, 2009 @ 2:09 PM PDT
Cateogory: Linux