This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new!


Keyboard-driven environments open a new window on the desktop

By Bruce Byfield on May 31, 2007 (8:00:00 AM)

Share    Print    Comments   

If you use a traditional desktop like GNOME or KDE, a keyboard-controlled desktop with a minimum of utilities may seem like stepping back 10 or 15 years in the history of interface design. Why bother, when traditional desktops are easy to use and RAM and disk space are so cheap nowadays?

Admittedly, minimalist desktops are not for everyone, especially since learning to navigate them takes time. However, if you try a minimalist desktop long enough to become comfortable with it, you may start to question the design assumptions behind its mainstream rivals. You might even come to value the minimalist approach for its own sake.

The case for minimalist desktops is summarized on the Ion home page. "Usability," the page proclaims, "simply does not equal low learning curve, and hiding system details from the user, as the Official Truth seems to be these days." In other words, a mouse may be a method of navigation that is easy to learn, but it's not the most efficient way of navigating applications. It requires a hand to move continually away from the keyboard, and often requires you to drill down through several levels of menus to perform a simple task. Moreover, in the effort to make graphical applications easy to use, program options and feedback are often hidden from users. In a sense, users are subtly discouraged from learning more than the basics, even though more advanced features might sometimes help them.

Using mainly the keyboard to navigate an interface takes longer to learn than drilling down through a series of menus, but is often quicker and more efficient in practice. A user interface that relies heavily on keyboard bindings is also less painful for those prone to repetitive stress injuries from prolonged mouse use, and simpler to configure, since fewer elements exist to customize.

In addition, on standard desktops such as GNOME and KDE, organizing a large number of open windows so that you can find a particular window can be difficult. Although solutions exist such as maintaining multiple workspaces, displaying windows lists in the panel, and automatic window sorting, many of these solutions add additional levels of complexity rather than solve the problem.

By contrast, the solution in most minimalist desktops is either to open each program full-screen,or else to open programs in tabs, frames, or both that occupy a fixed portion of the screen. In some minimalist desktops, such as Ion's, you can edit configuration files so that each instance of a particular program opens in the same frame all the time. Unsurprisingly, in all minimalist desktops, a large number of the commands have to do with switching between open windows, tabs, and frames.

Another obvious use for minimalist desktops is to give new life to old machines, since these desktops require considerably less memory than even Xfce, the most lightweight traditional desktop for GNU/Linux. The wmii project even goes so far as to declare that one of its goals is to keep the program to under 10,000 lines of code, presumably in an effort to help avoid bloat, even though a small codebase is not necessarily an indicator of responsiveness.

A deceptive learning curve

With these goals and concerns, minimalist desktops are not exactly user-friendly when opened for the first time. Few offer more than a small panel and a blank screen, and any menus are hidden a keystroke combination away from sight. Anticipating the dismay of new users, both Ion and wmii begin with short tutorials that plead with users to read the documentation, or at least learn a few basic commands to get them started.

Other minimalist interfaces deal with the problem in other ways. At the extreme end, dwm requires users to compile and configure their own versions of the program before they can get any use out of the desktop. Others, such as ratpoison or its new Common Lisp-powered version stumpwm, are virtually unusable until you read the documentation.

These initial difficulties are daunting, but superficial once you start exploring the documentation. Some minimalist desktops, such as Ion, are mouse-enabled, giving newcomers something to fall back on. Moreover, all are simple to learn once you learn their basic keyboard conventions: for wmii, the keyboard commands begin with Alt+, while ratpoison's start with C+t, and Ion's are the function keys. If nothing else, this information gives you a basis for trial-and-error experiments if you become confused.

Ion users may want to learn how to configure the software's mouse-driven menu early in their explorations, although they can still use other features of the desktop if they have taken a few notes from the tutorial. While not strictly necessary, this menu represents a compromise between mouse- and keyboard-driven desktop conventions that, initially at least, users may be glad to fall back upon.

In many cases, users can save time by installing a version of a minimalist desktop packaged for their distribution. For example, the Debian version of Ion comes with the Debian menus already enabled, which gives users a familiar set of menus without doing any configuration themselves. Similarly, the Debian dwm package is just finished enough that you can get a sense of what it is like without compiling for yourself.

Minimalist vs. traditional desktops

Standard desktops have become such an ingrained part of the computer culture that minimalist desktops are unlikely to ever become popular. The priorities behind their design are simply too different. Moreover, for all their faults, standard desktops do provide dozens of features, such as accessibility tools and anti-aliased fonts, that make computer use easier for several groups of users that minimalist desktops ignore.

Another potential problem with minimalist desktops is that they require users to switch between two different philosophies about interfaces: the stark, keyboard-driven philosophy of the minimalist desktops and the elaborate, mouse-driven interfaces of the typical graphical applications they can invoke from the desktop. Of course, users can also take advantage of keyboard shortcuts within programs, but, when they use a minimalist desktop, they must learn at least two separate sets of keyboard strokes, since no minimalist desktop apparently uses the standard set of conventions that have evolved for programs. To some extent, at least, the differences could be minimalized by reconfiguring the minimalist desktops, but that would probably take more effort than most users would care for. Since learning two sets of conventions increases complexity without offering any advantage, many may feel that minimalist desktops are not worth the effort of learning.

Of course, many minimalist projects would probably be unconcerned if they never became popular. Several, notably dwm, are frankly elitist, with Web pages that declare that they develop only for those in sympathy with their aims -- a sentiment that uncomfortably echoes the command-line machismo still found among longtime GNU/Linux users.

Still, despite the barriers to learning minimalist desktops, their simplicity and organization can be deeply appealing once you get over the initial learning difficulties. Even if you do not always use one, there is something to be said for keeping one available for the days when drilling down through menus seems too much for you. And, even if you ultimately decide -- as many will -- that a minimalist desktop is not for you, becoming competent in ratpoison or wmii will leave you both deeply aware of both the problems and advantages of desktops like KDE or GNOME.

Bruce Byfield is a computer journalist who writes regularly for

Share    Print    Comments   


on Keyboard-driven environments open a new window on the desktop

Note: Comments are owned by the poster. We are not responsible for their content.

Mouse Clicks vs Keyboard Shortcuts

Posted by: Anonymous Coward on May 31, 2007 08:47 PM
"In a sense, users are subtly discouraged from learning more than the basics, even though more advanced features might sometimes help them."

I usually feel that having both options are a good thing. People who use a program casually can go the mouse route, people who use it intensively can get pay back from learning the short cuts.

all the best,



Is the `window' new?

Posted by: Anonymous Coward on May 31, 2007 06:34 PM
KDE can be easily converted into a kbd-driven environment. The same is true for blackbox, fluxbox, etc., which are in play for _ages_.

And yes, work in a kbd-driven WM/DE is much more efficient than in a mouse-only one since 10 fingers are faster than one. It's easy<nobr> <wbr></nobr>;-)


Re:Is the `window' new?

Posted by: Anonymous Coward on May 31, 2007 07:33 PM
That's true, kde can be set up to be mostly keyboard driven. Still, it's bloaty, big and slow and while you can disable some features (like the desktop), you can't disable all I would want. Also I'd love to be able to move windows around with the keyboard more efficiently.


Re:Is the `window' new?

Posted by: Anonymous Coward on May 31, 2007 09:21 PM
Actually it's generally faster than Gnome. Moreover, it's completely configurable, allowing you to let it pretty sleek.


Re:Is the `window' new?

Posted by: Anonymous Coward on June 01, 2007 06:55 AM
Ratposion owns!


Re:Is the `window' new?

Posted by: Anonymous Coward on June 01, 2007 04:03 PM
I'd love to be able to move windows around with the keyboard more efficiently.

Try blackbox. Moving and resizing windows with kbd in blackbox is a snap.



Posted by: Anonymous Coward on May 31, 2007 06:40 PM
"uncomfortably echoes the command-line machismo still found"?




Posted by: Anonymous Coward on May 31, 2007 09:19 PM
Those elite "command-line machos" are the guys who write the software you use.



Posted by: Anonymous Coward on May 31, 2007 07:35 PM
Ion is not minimalist. It is bloatware, pure and simple. It has more features than most window managers. They're just not the ones you find in WIMPshit window managers -- it's missing the pointless, ugly, and distracting bling. Metacity -- that's minimalist. Gnome -- it's minimalist too in its interface, but far from it in its memory and cpu footprint (note the logo).



Posted by: Anonymous Coward on May 31, 2007 09:15 PM
Gnome has few features but is completely bloatware nonetheless. It's a big resource pig in its current state. The Gnome folks should spend some of their time optimizing and cleaning up their code IMHO.


You can do that on Windows too

Posted by: Anonymous Coward on May 31, 2007 07:41 PM
You can turn Windows into a keyboard-driven environment with apps like <a href="" title="">The Wonderful Icon</a>.

At work, I just kill Explorer and use only my TWI keybindings. When I do need Explorer, it's just a keystroke away<nobr> <wbr></nobr>:)



Posted by: Anonymous Coward on May 31, 2007 09:25 PM
Having used minimalist window managers (such as fluxbox, ratpoison, ion and wmii), my favourite keyboard-driven gui environment remains kde.

Fluxbox and ratpoison make configuring your own keybindings relatively easy by editing a simple config file but you need to read manuals and howto's to discover the available options and the correct config file syntax. Configuring keybindings in ion and wmii is even more difficult.

In contrast, kde makes configuring keybindings dead easy -- you can start by editing the keybindings in kde's control center the point-and-click way and then you can switch to using mainly keybindings. But you never have to give up the ability to do some window management stuff via the point-and-click way.<nobr> <wbr></nobr>;-)

Windowmaker has also an in-built gui editor for keybindings but unfortunately windowmaker's own menu (which the in-built keybindings editor uses) conflicts with debian's menu system (although there are workarounds). Icewm also has a third party gui configuration utility available for editing keybindings.

Yea, I prefer keyboard-driven environments but kde is, imho, the most flexible keyboard-driven environment and it also has the gentlest-sloping learning curve because of its fully-featured gui keybindings editor.

  * * *

Ps. This stupid comment portal gave me the following reply when I tried to write "kde" in caps as the subject title of my post:

"Lameness filter encountered. Post aborted!

This is just pathetic.


10,000 lines is too much anyway

Posted by: Anonymous Coward on May 31, 2007 11:12 PM
There's no reason for a tiling window manager to require 10,000 lines of code. The basic algorithms are very, very simple. <a href="" title="">xmonad</a> , a window manager similar to dwm or ion, is 500 lines of Haskell, provides full tiling window manager features -- with VI-like bindings -- along with multihead displays via Xinerama, and user written layout functions. It's very usable.


Re:10,000 lines is too much anyway

Posted by: Anonymous Coward on June 01, 2007 02:44 AM
10000 lines of C != 10000 lines of Haskell


too minimal

Posted by: Anonymous Coward on June 01, 2007 02:30 AM
I love blackbox aesthetically and used to use it on all my machines. Here's the problem though- the "Start menu" (or whatever it's called on your distro) is where the distro organizes the preferred software for various tasks. This typically isn't populated when I compile and install blackbox, so I have to either build it myself or remember the names of all the applications. Thing is, I often discover applications (like Dia for instance) when I have a need for something (Diagram generation) that I didn't anticipate. There's lots of times like that, so it's actually worth the small cost in bloat on my machines to keep the heavier desktop availabe.


in defense of ratpoison

Posted by: Anonymous Coward on June 02, 2007 12:36 PM
i've been using linux for 6 years, and ratpoison for the last 4. i started using it for a reason stated in the article: i was stuck with an old machine and my window manager was taking up most of my precious ram.

anyway, i've been using it to this day though all my machines (laptops and desktop) are powerful enough to run any damn thing including beryl/compiz. reasons in addition to that given in the article:

1. independence from the mouse: the mouse is usually pretty far from the home row where users' hands are (need to reach across the numpad), and it becomes tiresome and painful (literally) to reach for it to change windows.
2. productivity: because there aren't any fancy things that need tuning (eg: desktop wallpaper, fancy widgets on the taskbar, other bullshit that usually adorns a customized desktop).
3. screen real estate: though most WMs will let you full-screen any app, none of them can manage things as well as ratpoison.
4. scriptability: you can do whatever you want using ratpoison using _your_ favorite scripting language. an example is the mac osx expose-like functionality (<a href="" title=""><nobr>p<wbr></nobr></a>) which is hacked together in perl using only ratpoison commands.
5. ease of editing code: ratpoison has a pretty small source tree and adding your own features becomes much less daunting than hacking gnome or kde.
6. keyboard shortcuts: i have 1-button access to all my apps (0-9 on the numpad), which will always retain the mapping i have in mind (eg: 0 for terminal, 1 for firefox, etc.). i use a multi-tab terminal (mrxvt), so i never need another terminal window. ditto for firefox. this saves you from hunting for the correct window of your app.
7. fullscreen editing: in my opinion, you get more work done if you edit fullscreen. you get to see more code, you get read more of your email without pressing buttons, etc.
8. works awesome for dual-head configs due to the nice exactly-half split (no dragging corners to align windows at the monitor boundaries).

and so on..

i hope this rant is useful to somebody<nobr> <wbr></nobr>:)


Re:in defense of ratpoison

Posted by: Anonymous Coward on June 02, 2007 12:44 PM
oh, also, a couple of things that helped me be more productive in ratpoison:

1. ratmenu (<a href="" title=""><nobr>h<wbr></nobr> tml</a>) , to easily switch windows by showing you a menu of existing windows which you can navigate through (kinda like alt-tab, but much nicer)

2. xbindkeys, lets me set whatever keybinding i want to open/close programs<nobr> <wbr></nobr>... no more typing or hunting for the program icon.


This story has been archived. Comments can no longer be posted.

Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya