Comparing gtk+ and Qt applications

I’ve been on the hunt for Qt/KDE applications that do the job of the gtk+ equivalents I use.

That’s a tall order, as I’m used to the way my gtk+ applications look, feel, and behave in Xfce. Trying to learn something that may do things completely differently can be very frustrating. Heck, it can be annoying even when 98% of the time the app does just what you want it to. That last 2% can push you over the edge.

Part of learning the ropes with KDE4 is finding which application does what. Yes, I could just keep using all my existing gtk+ applications with little or no difference in look’n'feel, thanks to QtCurve. But that would deprive me of the chance to try out the many, many other apps available in the FOSS world. I’d miss out on all the fun if I focused on applications written for just one toolkit. This post examines the differences between certain gtk+ and Qt programs.

Obviously, these are my subjective experiences. Everyone has their own preferences. Using and writing about all these different applications has really helped me take a look at what exactly I like to see in an application. What I expect it to do out-of-the-box, and what kind of tweaks it offers so that I can tailor it to my needs. Actually, reviewing Qt apps has helped me in my search for gtk+ equivalents, too. I’ve been spending more time examining user interfaces on their own merits, instead of discarding apps from consideration based solely on their widget toolkit.

The applications listed here all work equally well in Xfce and KDE, so if it operates in one environment, it operates in the other. If it fails in one, it fails in the other. It’s a fairly level playing field, except that I’m coming from an Xfce background, which means I’m just not used to how some things are done on the “other side of the tracks.” I’ve tried to keep that in mind as I jump from app to app.

Multimedia

For audio playback, in Xfce I use Decibel. Its playlist support isn’t all that great, and it can’t do additions by genre (or suggest/smart-add tracks) but overall it’s fast and easy to use. I’ve tried other gtk+ apps like Rhythmbox and Exaile, but while I like the ideas behind them, their user interfaces are just a bit too busy to be useful. Players like Listen or Songbird are also too complicated (and dependency-bloated).

I need some kind of happy medium between the sparse simplicity of Decibel and the clutter that is Rhythmbox, Banshee, Exaile, et al. Bluemindo, Consonance, and some of the MPD front-ends come close, but don’t quite make the connection for me.

Speaking of MPD: while it has many, many front-ends, I totally dislike the whole client-server model. I don’t stream anything over the network, so setting up a server on a single box, with all the weird configuration that entails, is just too much. Plus MPD still can’t play audio CDs, so I don’t bother with anything that uses it, whether gtk+ or Qt.

Elsewhere in the player spectrum, there’s XMMS and its derivatives. I used Audacious for a long time until it quit working a few years ago, then moved to Decibel and haven’t looked back. However, as much as it’s a pain to add tracks in the Winamp lookalikes, I can use them fairly quickly and find where everything’s located, since I used Winamp for years back in my Windows days.

It’s hard for me to find a player that feels usable on a day-to-day basis. Both when I just quickly want to throw some tracks in the queue and when I want to spend some time arranging a playlist. Those are the two big tests of a player’s usefulness. There are lots of KDE/Qt media players available, so I’ve started sampling them.

JuK: Meh. I don’t like the UI. None of the modes are intuitive, even after days of playing with it. That left sidebar is killing me. Totally unhelpful.

Amarok: Yup, the heavyweight. The program that’s gone through polarizing changes to its UI and features in the 1.x/2.x release series. Can’t say I care for it — it was far too complicated. Felt like it took the worst UI design aspects of Listen, Songbird, Banshee, and slapped ‘em together. Plus it was slow. I don’t have a large collection of music on my laptop; less than ten albums. The library is tiny, but Amarok is always pig-slow to startup and search through my files. Plus Amarok required many libraries that take a long time to compile. Not worth it. Akarok just isn’t right for me.

QMMP: This is familiar to an old winamp/xmms/audacious user, but very dated. I don’t like the idea of skins anymore. I want applications to smoothly integrate with my desktop theme — using native widgets, whether gtk+ or Qt. There’s no “default to native Qt widgets” setting, unfortunately. But it plays media as expected. There’s a wealth of built-in plugins that offer everything I need for playback and information display. Just like the good ol’ days of Winamp, XMMS, and Audacious.

QMMP is the player I’ll stick with for the time being, as I can’t find anything with a UI that’s not too simple or too complex. What I’d like is a Qt app with a couple of configurable panes and album cover support — something like Decibel or Consonance, but capable of more than just adding music by album or artist.

Kmix: an applet for volume control. It has the quick functionality that I’m accustomed to in Xfce4′s volume control, in that I can hover over the applet and scroll the mousewheel to change volume without needing to click. Very handy. However, the icon and “sound wave” meter are so tiny it’s very hard to tell the volume has been changed without clicking to check the level. When opening Kmix as a standalone application, it’s the most confusing frontend I’ve ever seen to alsamixer. Seriously, its UI is crap, even after adjusting the display options to minimize the clutter.

That screenshot in the above link represents a best-case scenario, and even that’s totally unintuitive. The icons also don’t always make sense — take that first one at the top of the “Master” control. It’s a mini slider switch. Looks like it should do something, right? Yeah, just keep grabbing at it, then realizing that it won’t actually do something. I could go on, but I’ll stop there. There are some icons I just have to ignore.

Fortunately, my needs are simple; I don’t need many displayed controls. I don’t even use the laptop’s builtin microphone, and only rarely use headphones. “Master” and “PCM” are the only things I really care about.

On the positive side, sometime after installing Kmix (so it’s possibly related) I now have an on-screen volume indicator when I use my laptop volume buttons! The last time I saw this was in an ancient version of Ubuntu, so it’s quite a treat to have the buttons actually work and get integrated into my desktop. Love it!

Now I just need a working on-screen display for my LCD brightness level. I do get a popup, but it doesn’t always move the level meter when I adjust brightness, in KDE and Xfce. At least I’m halfway there: things appear on the screen when I push buttons. Good start.

Utilities

Ark. In Xfce, I use Xarchiver to work with tarballs, zipfiles, etc. I’ve also played with Squeeze in the past, but found it rather unstable. Back in my Gnome days I used the ubiquitous file roller. There are a few different gtk+ archive managers I’ve used, and generally liked their UIs.

Ark seems to be the standard (possibly only) Qt archive manager in Portage. Sadly, it would not work: it said it did not have the necessary permissions to create archives in my own home folder! This was a show-stopper, so after a few half-hearted debugging attemps I unmerged it and went back to Xarchiver. Under KDE, Xarchiver sorts the archive in reverse, with files at the top and folders at the end, but this is a minor change to expected functionality. It still does everything else it’s supposed to.

Plasma-emergelog: a plasmoid I found on the official KDE overlay. Prints emerge.log output from the last few merges; can be pretty useful. It’s even written by a fellow Gentoo developer.

Dolphin: as filemanagers go, this one is okay. Once I disabled some of the hover mojo, enabled double-click activation, and added an “Up” arrow, it works like any other FM I’ve used. That is, with one key exception: the unending annoyance that is the location bar! I like having an editable location; it’s much faster for me to type the location than it is to keep clicking backwards and forwards though the filesystem. However, the location bar doesn’t seem to be persistent. Every time I open a new Dolphin window, I always have to click View -> Navigation Bar -> Editable location. My setting is never permanently saved. Is this a bug or a feature? It’s driving me crazy!

The search bar is interesting, but useless. I intend to remove resource and space-sucking hogs like Nepomuk, Strigi, and anything else that uses the “semantic desktop.” Maybe one of these days the semantic desktop will matter, and our tools for using it will improve, but for me, that day is a long way off.

I can’t find one good desktop search framework for any environment, KDE, Xfce, or Gnome. Beagle, tracker, Strigi, you name it. In my experience they’re just too slow and bloated.

Konsole: an acceptable terminal, though I may be going back to Xfce Terminal soon. Konsole does everything I need it to except make use of middle-click functionality. I can’t middle click a URL to have it open up in a new Firefox tab, for example. This is something I do constantly — whenever I run an eix query, I usually open up the application’s homepage, which just needs a middle click in Xfce Terminal. It’s a two step process in Konsole; I first have to right-click the URL, then choose “Open Link.” I miss the middle-click so much I’ll probably go back to Terminal. Now that my gtk+ widgets all look like native Qt apps, it’s not like I’d notice a difference. The color schemes are the same, the fonts, are the same, they can both do tabs . . .

Networking

Kbluetooth: Bluetooth manager for KDE. In Xfce, I use Blueman, which gets the job done. It mostly has a unified user interface. But I can’t actually browse my phone in a filemanager, since Thunar lacks support for that. Even using Gigolo isn’t enough — I’d have to install various FUSE packages to get support for opening the obex:/// location from Blueman, or use Nautilus. Neither are acceptable.

I can’t browse my phone using Kbluetooth, either. I can send and receive pictures, but sending (from the phone) requires a laborious, slow process of selecting each file and stepping through several menus. Sending items to the phone from the laptop is much faster, as I can use the normal file picker.

Also, I couldn’t get a unified preference/usage window to popup for Kbluetooth. I had to do lots of right clicking on the panel applet, and every setting requires a new window. Rather annoying.

One other annoyance was the fact that every time I wanted to receive a file from my phone, Kbluetooth opened KWallet. Can’t it just read my PIN from secure location in the filesystem? I think that’s what Blueman does, maybe someplace in /etc/, just like wicd and wpa_supplicant do for WLAN passwords.

I still need a good Bluetooth client that lets me browse my phone directly in a file manager of some kind.

WiFi: turns out that by reemerging solid with +wicd, it enables support for wicd, which I already have installed. I haven’t seen how this works, though. Wicd was already listed in the program autostart menu; I just had to change the command so that it launches the tray applet and doesn’t just run the background daemon.

Regardless of any special Solid integration, however that works, since wicd operates normally, it may remove
the need to install some other network connection manager. I’m quite comfortable with wicd, and it’d be nice if I didn’t have to setup a new configuration for a new app every time I switch desktop environments.

Writing

Kblogger: client that supports multiple blogging APIs, including LiveJournal support. I found this client in the kde overlay. However, it doesn’t actually work with LJ. It can’t add post tags, nor can it retrieve existing tags. Trying to do so kills the application. Very buggy. I gave up and unmerged it.

Blokkal: another multi-blogging client with LiveJournal support. Does everything I want it to for LiveJournal. Minor annoyance: I can’t just type my LiveJournal password into Blokkal, but instead have to first enter the password for KWallet. But that’s probably a more secure method of storing it locally, right? Still, it’s an extra step that I don’t have to take when using gtk+ clients like Drivel or LogJam.

Office

The next big writing application to find is a word processor: something that’s fast, easy-to-use, and doesn’t require hours of downloading and compiling. KWord seems to be the most well-known office application, but the reviews I’ve read so far indicate that it tends to run a bit slow, though not as bad as OpenOffice. That’s a positive sign, so I’ll give KWord a shot.

On the lighter side, FocusWriter seems to be a Qt clone of PyRoom, which is a free gtk+ version of WriteRoom for the Mac. I wrote an ebuild for PyRoom a year ago; it’s been one of my very favorite and most useful applications. I do need a distraction-free writing environment, so I’m glad to see that there’s an equivalent application for KDE/Qt.

Other office software I need to investigate: spreadsheets, finance trackers, and email clients.

And another thing . . .

I notice that it can take a long time for newly installed applications to show up in the Kicker menu, or to disappear after I’ve uninstalled them. Why is that? Is something not scanning /usr/share/applications when it needs to? I usually have to logout if I want to see the menu updated.

17 thoughts on “Comparing gtk+ and Qt applications

  1. Atleast on:
    Dolphin
    Version 1.3
    Using KDE 4.3.4 (KDE 4.3.4)

    Settings: Configure dolphin -> Start up -> [ ] Editable location bar.

    Check that one, apply, close dolphin and restart dolphin. The editable location bar should be there by default now.

  2. I’ve been reading your kde explorations with interest. FWIW, I have kde4 working reasonably to my liking here — but only after spending over 100 hours finding and/or scripting up solutions to still broken functionality that worked just fine in kde3. I’m a diehard kde user, obviously or I’d have not bothered, but there’s no way I can agree with the kde claim that it’s ready for “normal” use since 4.2. While each version improves on the previous and 4.3 is what I’d call beta, with 4.4 predicted to be rc and 4.5 finally something usable, I honestly can’t call what we have now generally usable, or recommendable. That out of the way…

    Config

    The so-called config usability issues, etc, are the reason I’m a diehard kde user — as any good gentooer, I like customizing, and they’ll be prying that customization out of my cold dead hand, as they say! =:^)

    Multimedia

    When the amarok devs decided to require the then broken on amd64 mysql (the embedded client was what was broken, and that’s what amarok chose to use), that was the last straw here. I had never been all that enthused about its heavy dependencies, but on kde3, I liked the minicli, the winamp skins compat, and the visualization (including in or separate window from the minicli). So for the kde4 version, they decided to get rid of all that stuff I actually used, and replace it with junk I didn’t. But the mysql-embedded debacle, that they could simply wave away that whole major segment of their userbase as an SEP (somebody else’s problem), seemed a microcosm of the whole early kde4 debacle, only by now I was, pushed by kde-upstream’s dumping of kde3 support, switched/switching to kde4, and wanted the much-harder-to-build (parallel-build issues, etc) kde3 stuff off the system.

    But unlike you, I found the flexibility of all those mpd front-ends very nice, and liked the ability to seamlessly switch from cli to kde/gui without so much as a pause in the music, so that’s what I run now. I still miss the visualization, especially now that I have a card that’ll actually handle the OpenGL side of things, but oh, well. The ability to switch from gui to cli and back, or even kill the mpd clients entirely for some while, without killing the music, is an even trade, IMO.

    But I don’t think I knew about qmmp. I’ll have to try it.

    kmix… on my main box does nothing since I’m hooked up to the home stereo 4:1 amp thru digital-line-out. I use the amp remote and individual application volumes, there. On my AA1 (netbook), however, I appreciated kmix’s auto-recognition of the onboard volume/mute keys — and as you mentioned, the on-screen display as well.

    Utilities

    ark is the nicely integrated kde archiver and reasonably useful for “user-mode” operations. Of course I’m a die-hard mc user when I have my sysadmin hat on, regardless of whether I’m actually running from the gui or the cli.

    I’m guessing your permissions issue with ark is tempfile permissions. Open a konsole window and see if KDETMP is set/exported. If so, check permissions where it points. If not, IIRC the default is $USER/tmp. Is that perhaps a bad symlink or something?

    plasmoids: I’m long used to konsole or cli for emerges, so plasma-emerge-log didn’t suit me. However, I like keeping an eye on system stats and ksysguard4 (way too generically aka system monitor in 4.x) is both broken as-is, and has no kde3/kicker applet plasmoid replacement. That was very nearly a blocker to the upgrade here, until I found yasp-scripted on kdelook. (If you check it out, the 8-plasmoid screenshot is mine. That’s part of that 100+ hours scripting to replace still-broken kde4 functionality!)

    No bluetooth here, FWIW, and I prefer wired to wireless networking so wireless is way down the list on the netbook. However, based on the kde lists posts, sticking with wicd was a very wise decision. The network manager support… well let’s just say it’s said to be much better in kde 4.4, scheduled for next month (yet another reason kde4 is IMO only beta quality with 4.3, still).

    Browsers:

    Firefox/konqueror/other (as mentioned in an earlier blog): While konqueror is still my default, I too am finding myself using icecat/firefox more and more, due to the extensions. There’s a lot of folks getting “addicted” to it due to the extensions. (FWIW, I use a personal proxy, privoxy, for ad and other misc web filtering, so don’t use adbuster, but given I keep scripting off by default, there’s nothing out there like noscript and JSViewer for figuring out what sites I need to enable permissions for, and whether it’s reasonably safe. There’s simply no way konqueror can match it, either, unless all the webkit browsers come together with a common extension format to try to counteract Mozilla’s head start.)

    Two konqueror notes: (1) Performance: Under konqueror config, performance, configure memory usage and preloading behavior. That helps. (2) Konqueror actually still has file browsing functionality, but it uses the dolphin kpart, so it’s not available unless dolphin is at least installed.

    FWIW, I’ve come to like gwenview for “user-mode” file-management, where the icons matter. For “sysadmin-mode”, mc, of course, with customized user-menu including stuff like ebuild digest, etc. =:^) You may also wish to try krusader, especially if you like the traditional two-window style fm, but gui as opposed to mc’s semi-gui curses interface.

    Hope it helps. Come over to the kde general or kde linux lists if you wish, and given the improvements in new kde versions ATM, you may well wish to consider switching to ~arch for kde4 and grabbing 4.4 as soon as it’s available. There should be fixes in quite a few areas including printing, wireless network management, graphics (krandr config is supposed to work well for dual-monitor ati card users for the first time /ever/, it was broken in kde3 as well, and I ended up scripting an xrandr solution), the plasma widget explorer (new), etc.

  3. For the console in KDE, I’ve switched to using Yakuake, see: http://yakuake.uv.ro/

    It’s a “Quake-style” terminal, so it pops down from the top of your screen when you press a button to trigger it.

    I gave it a spin thinking it might be a little bit useful, and to be honest, it’s so useful I’ve never looked back.

  4. You might try “Bangarang” for your media player. It is a very nice KDE 4.3 player with a minimalistic, but very functional interface. I think you’ll find it’s fairly lightweight and has what you are looking for.

    I believe Blogilo (formerly “Bilbo Blogger”) has Live Journal support and has some pretty active development. They’re doing some really interesting things with it.

    The behavior you’re seeing in Dolphin is definitely a bug. I have seen similar artifacts in other KDE applications, especially those that use the KConfigXT interface for saving configuration settings. Probably someone left out a line of code . . . please bug report it.

    The current version of koffice (2.1) is definitely a beta. Version 2.2 is supposed to be the first stable release and will be pretty neat. I think you’ll find it a welcome change from the bloatedness of OpenOffice. I use kword for all my lectures and kspread for my gradebook and despite frequent crashes (it IS development software), I’ve found the koffice suite to be an excellent and very efficient tool for handling both of these.

    On the other hand, if you’re just doing basic text editing, I recommend “kate”. It has neat session management capabilities, code highlighting, and a lot of other really neat features. It’s also very fast and lightweight.

  5. @Jason:

    If I have to go into the KDE Control Center to fix the problem, then like atomopawn said in his comment, there’s definitely a bug somewhere. I should be able to make persistent configuration changes from within Dolphin. Nonetheless, I’ll try your suggestion. Thanks!

    @Dave:

    See my comment on an earlier KDE entry for why Quake-like consoles don’t work for me:

    http://blogs.gentoo.org/nightmorph/2010/01/07/on-kde-4-3-3#c33818

    @atomopawn:

    Thanks for the tip; I’ll see if Bangarang is to my liking. It looks rather Windows Media Player-ish, which is the unfortunate road that Parole (for Xfce) and Totem have gone down, but I’ll try it. The ebuild in Sunrise looks nice and lean; nothing additional to emerge. I like that.

    Regarding Blogilo, well, it doesn’t really work that well with LiveJournal. This is because LJ doesn’t really support the Atom API. It does for a few bits, but it can’t do tags, userpics, music, moods, etc. It really only supports post content, titles, smoe privacy, and retrieving previous entries. It’s extremely limited. This is the case for most multiple-API blogging clients, unfortunately.

    I wasn’t aware KOffice 2.1 was beta — it’s marked stable in Gentoo, after all. I don’t use OpenOffice for the reason you mentioned — the bloat! I stick to Abiword.

    For basic text/code editing, I’ve already got gVim and Mousepad, plus the almighty power of NANO. :D

  6. If you want new programs to automatically appear in your menu, fire-up a Konsole, type “kbuTAB” and have kbuildsycoca4 run. :-)

    ATM I haven’t KDE4 here so I can’t try to see if you can just type it in KRunner (ALT+F2).

  7. “Every time I open a new Dolphin window, I always have to click View -> Navigation Bar -> Editable location.”

    When you position the mouse on the location bar it says “Click to Edit location” – this is very practical because every time i want to edit the location I just click on it and change it. Or you can go with the keyboard “Ctrl+l” it will take you directly to the location bar and make it editable.

    Regards.

  8. I so like amarok3 and so hate the new interface of amarok4. This is amazing how pplz can screw they own work.
    I’ve tried qmmp after your post and .. i can’t take this old school anymore. The interface is too small on my laptop and not very practical. It’s also seems can’t hide in systray and this is must for me.
    However, it’s very light and just works.
    Got stuck in between and using cli mplayer ;-) running in screen. That just works.

  9. I like this series!

    I think you might like media-sound/cuberok from qting-edge overlay. It’s still an early version, but it holds that middle ground that you’re looking for. (But I’m particular to MPD myself.)

    As an alternative archiver you might want to take a look at app-arch/q7z.

    And I still prefer Konqueror over Dolphin as file manager. Its split panes feature is superior.

    As for a terminal, as you say Konsole is acceptable, but I don’t find it brilliant either. I like rxvt-unicode. It would be lovely if someone could write a Qt4 wrapper around it.

  10. @Ben:

    Thanks for the tips, Ben. I’ll be sure to try out cuberok and q7z. Like you, I’m probably moving back to some other terminal — I may yet give konqueror another shot. I hear that it plays very nicely with preload.

  11. My picks:

    Multimedia:
    * audacious (but thanks for the tip about qmmp – I think maybe I’ll switch!)

    * kmix for volume control – you’ll get used to it. It’s got good hotkey support, good scroll wheel support, etc.

    Utilities:
    * archiving – don’t use anything. Just use konqueror as your file manager, and then right-click on archives (e.g., extract here). I do everything else (e.g., creating tarballs) from the command line anyway.
    * file management – again, I still prefer old-school konqueror as a file manager.

    terminal:
    * konsole – used to be great in KDE3, kinda sucks now in KDE4.
    * networking – knetworkmanager / kde networkmanager plasma applet works great and integrates nicely

    But to tell you the truth, all of these apps – and kde as a whole – worked much better in kde3 than in kde4. I was a long-time KDE user who dumped KDE for Xfce after trying out KDE4 for a while. (Which is how I came upon your blog in the first place.)

    Just stick with Xfce! It does everything kde can do and does it better – and more lightweight!

  12. Regarding the look and feel, you can have qt-curve for at least qt4 and gtk2. Makes a very usable unification of both toolkits for me, though the interpretation of especially roundedness is a little bit different in both versions. Which doesn’t matter for me because i prefer flat, old and boring looks and choose presets accordingly. No fiddling necessary that way.

  13. A couple keyboard shortcuts for dolphin that I have started to use:

    F4 will bring up konsole @ directory you are in

    F3 will go to a split plane

    I just started using KDE myself and have started to really enjoy it.

  14. Many thanks for the “hint” about qmmp. Finally a xmms-like player again that actually works.
    I was really in desperate need of a new media-player after amarok-2 turned out to be a pure piece of crap compared to the 1.4.x version.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>