Lite Window Managers

Posted 24 Feb 2001 at 16:12 UTC by angelsun Share This

There is alot of variety in the window manager space. Features for the most popular window managers range from complete customization through themes to virtual desktops to elaborate toolbars and dock apps. I'm looking for thoughts on what features would be essential in a good lite window manager.

Are lite window managers popular anymore? With the rise of GNOME and KDE must these environments be supported to make a lite window manager successful? What do users expect to get out of there window managers in the way of features and customization.

With the growing list of WM's which support some type of virtual desktops or workspaces should this become an essential feature of any window manager?

What about window decorations, lots of WM's support very dynamic decorations which can be themed. I perfer a static set of window decorations which I believe is essential for a lite window manager to be light on memory and fast.

Where do lite window manager programmers draw the line on features and user customization? At what point does a lite WM not become lite anymore?

Well... why?, posted 24 Feb 2001 at 18:48 UTC by egnor » (Journeyer)

We can't answer that question unless you tell us why you want a "lite" window manager. On the Sapphire home page, you describe your purpose as "to develop a small, fast and light window manager". (I'm not sure what "light" means that isn't encompassed by "small" and "fast". Software didn't weigh anything the last time I checked.)

"Small" and "fast" are both relative terms. Do you have a particular goal in mind? (For example, some people run X on handheld devices, which have limited storage capacity and slow CPUs. Those devices set pretty stringent requirements for "small" and "fast". Is this your goal?)

"Lite" for its own sake is a strange concept. You can spend forever optimizing software, and you can cut features down to the bone; perhaps this is an amusing journey to nowhere, but I don't see why you expect anyone to supply signposts!

Light window managers, posted 24 Feb 2001 at 20:52 UTC by azz » (Journeyer)

This is a topic that interests me, as I've used a wide variety of window managers and tend to prefer the simpler ones. The one I'm currently using is aewm by decklin, which is particularly nice since it's very usable and its source code is small and easy to understand. aewm's feature set is small---it lets you move, resize, raise, lower, close and iconify (unmap) windows, and allows you to specify programs to launch via mouse buttons on the root window. It comes with a set of small programs that provide various different types of program-launcher or window-switch menus which you typically bind to buttons; these replace the root menus that most WMs have built in, and it's easy to write new ones if you don't like those provided. aewm doesn't provide virtual desktops, but I simulate them with a seperate program (vdesk; available on my programs page). It doesn't provide any especially fancy borders, but it's good enough (it even supports Xft for antialiased text), and if you don't like it you can easily modify the code for a different appearance.

I've also tried:

  • lwm, which is even simpler than aewm but still fairly pleasant
  • 9wm, which is a bit too simplistic for my tastes
  • pwm, which is pretty neat (especially the multiple-windows-in-one-frame thing)
  • ion, which is cute because it can be entirely keyboard-driven
  • uwm, which shows that you don't actually need window titles to make a wm usable

In general I tend to prefer "light" software, since it's typically easier to modify (there's not as much code to understand) and it's more Unixish in design (calling external programs rather than having lots of features built in).

RE: Well... why?, posted 24 Feb 2001 at 21:38 UTC by angelsun » (Journeyer)

Hmmm, Let me reiterate the question. What features do you consider to be essential in a lite window manager, virtual desks, toolbars, root menus, window decorations, KDE support, GNOME support, user configuration, etc... What features would the ideal lite window manager have in your opinion?

heh, posted 24 Feb 2001 at 21:38 UTC by cmm » (Journeyer)

azz: just so I understand. you've found the most featureless WM, and then you added all the missing features as separate programs? good thinking, there. keep it up.

I've seen tons and tons of Unix people doing such things. in fact, Unix as a philosophy is like this. I mean, only in Unix do you get to use 10 different languages and call 10 different processes, communicating through dumb bitstreams, constantly printing out and then reparsing the data, in order to achieve a simple task. I've always thought that this approach is completely nuts, but many apparently sane people like it a lot. they say that every one of said processes is an instance of a very simple and straightforward tool. they simply don't see where this approach to system design leads, although the result is in front of their very eyes. they say they like this result.

I don't understand people, really I don't.

simple enough and not too simple, posted 24 Feb 2001 at 22:34 UTC by Ankh » (Master)

A program needs to be as simple as possible to do what is needed, but no simpler.

I've encountered bus in cat<./i>, mv, cp and many other "simple" programs in the past. So sometimes having separate programs is good from an engineering point of view.

Unix uses program boundaries as firewalls between coding errors, faulty code and compromised code. Probably a single program to comminucate with a window manager would make sense ,though, not one for each function.

For what it's worth, I use sawfish on this system, and wmx on my netbsd system (where gnome doesn't work). I used to use olwm and olvwm.

Unix "philosophy", posted 24 Feb 2001 at 23:08 UTC by cmm » (Journeyer)

Ankh: I'm not sure whether your little lecture about the Unix way of doing things was called for, but thanks all the same.

there are two known reasons for process-boundary protection:

  • genuine security needs
  • the need to protect programs written in crappy languages from themselves and each other

but leave it to humans to spin a workaround for an obvious brain damage into a philosophy, a study field and a profit generator. witness Unix and XML.

gee, I'm off topic. or am I?

Light vs Features, posted 25 Feb 2001 at 07:54 UTC by jono » (Master)

As some of you may know,, I am a big KDE fan and developer. Although I use and advocate KDE, I always try to act as objectively as possible.

In your question as to what should go into a WM, I think you should first look at your audience. Some people want a very simplistic WM, and for them they can use something such as mwm or twm. Ususally these WM's don't offer much over just moving windows around, and maybe a menu for starting applications. You then get full featured desktop environments such as KDE and GNOME where people usually stay in the desktop environment and use it to use and administer their system, more so than command line.

I think the problem with the UNIX and Linux world is that there are just too many WM's. There are literally dozens of WM's varying in speed and size, and I know that some people get so wound up over how long it takes to load their emacs or XBill. MY personal opinion is that I would rather wait an extra few seconds and get a nicer full featured environment than a limited ugly WM, but that is just MHO.

What I would recommend you do is to work on an existing WM, and make it better. This would save deluging the UNIX/Linux world with yet another WM. We seem to have dozens of repicated apps like image viewers, CD players, text editors etc. We should instead maybe center our efforts on pre-existing soloutions and extend and enhance them.

I hope I havent evaded the initial question, and maybe shed some new light on the discussion. Good luck!

RE: Light vs. Features, posted 25 Feb 2001 at 18:41 UTC by angelsun » (Journeyer)

jono: In your question as to what should go into a WM, I think you should first look at your audience.

Well the question didn't specify an audience. I simply asked what features do you think are essential in a light window manager. If a window manager programmer is going to write a small WM what features should he/she definitely concentrate on. I can't understand why this is such a hard question and why people can't stay on topic.

jono: I think the problem with the UNIX and Linux world is that there are just too many WM's.

I strongly disagree, infact there aren't enough window managers. GNOME, KDE and E are not one size fits all. Variety is Unix strongest advantage.

jono: What I would recommend you do is to work on an existing WM, and make it better.

I do work on an existing WM, and I am already in the process of making it better. Now if we could stay on topic I would have a few extra suggestions that possibly would make it better.

jono: This would save deluging the UNIX/Linux world with yet another WM.

Just why exactly would it hurt to have yet another WM? There is strength in numbers.

jono: We seem to have dozens of repicated apps like image viewers, CD players, text editors etc. We should instead maybe center our efforts on pre-existing soloutions and extend and enhance them.

But that is the whole idea. Why have just a few applications when you can have literally hundreds in which to choose from? Why should we limit the number of applications we have? The whole point of free software is that its free. Freedom is why I use Linux. I will always be an advocate of forking code, not because it may be better but just for the fact that we can do it.

Now that we have strayed so far from the initial question. I'd like to reiterate it one more time for anyone who is reading. The question is: what features do you (in your opinion) feel that a light window manager needs. Think of it as a standard feature set for any window manager. What features should a programmer concentrate on when designing, writing and maintaining a light window manager for the X Windows System?

Thank you, have a wonderful day!

Most "Lite" WM of them all, posted 26 Feb 2001 at 00:25 UTC by jwalther » (Journeyer)

Ratpoison expresses its philosophy pretty simply:
Ratpoison is a simple Window Manager with no fat library dependencies, no fancy graphics, no window decorations, and no flashy wank. It is largely modelled after GNU Screen which has done wonders in virtual terminal market.

All interaction with the window manager is done through keystrokes. ratpoison has a prefix map to minimize the key clobbering that cripples EMACS and other quality pieces of software.

RP is a complete window manager; yet you may be shocked when you "see" it. Or rather, when you don't. There are no root menus, no virtual screen pagers, no icons, no borders, frames, or titlebars. Every application enters the world fully maximized and given the full attention it deserves by the mouse and keyboard. Ratpoison does what any good windowmanager should and GETS OUT OF THE WAY.

I have been using ratpoison on a multiuser system; where the KDE users have complained of their sessions bogging down and being incredibly slow when the system came under high load, I noticed no slowdown at all in switching windows with ratpoison.

What else does a window manager need than some mechanism to let you switch between windows, and to pop up new windows? Ratpoison is at long last my ancient dream of something like the Linux console but that also lets you run X applications without funky 3-keystroke chords of disparately placed keys on the keyboard. It gets better; you can "name" a window with C-tA<newname>, then go to that window with C-t'<unique prefix> where <unique prefix> is enough characters to let Ratpoison determine exactly which window you are referring to. You can also cycle through windows with C-tn and C-tp.

Finally, one feature some may find useful is its "bosskey", C-tC-t which switches you immediately back to the previous window. It is 10x faster than alt+tab under KDE, Windowmaker, and the like windowmanagers.

The stripped binary is 26k in size, and the authors are committed to making sure it never gets larger than 29k. I also find the code very well written. Its a joy to read. For that reason alone Ratpoison is worth running. It is small, succinct, yet clear and gets to the heart of what it is trying to do.

Standard-compliancy is all that matters...., posted 26 Feb 2001 at 02:40 UTC by RyanMuldoon » (Journeyer)

If you want to make an "ideal" lite window manager, the one important thing is that you are standards-compiant. Support the ICCCM specs. Support the extended window manager spec that developed. Beyond that, it's really up to you. As long as it interoperates well, I'm sure that you can make something worthwhile. One nice thing that WM's like Sawfish have is extensibility. You can increase its functionality by writing a little lisp. This is a very nice feature, as it lets you have a small base, but makes it easy to add functionality in. As for theming and such: other WMs do that pretty well. I would suggest that you come up with a nice default look, and just use that. Maybe let users modify colors. As others have pointed out, there is already quite a variety of window managers out there. Find something that you want that none of them does, and implement it. Otherwise, there isn't much point in making a new one, other than your personal enjoyment.

My reply, posted 26 Feb 2001 at 03:48 UTC by jono » (Master)

Angelsun, upon reading your reply to my reply, I am unsure whether to rate you as an idiot or just insulting.

Your reply to my post has clearly shown that all you care on hearing is what you want to hear. So you want to write a 'lite' window you want to create a new software project. That is fine, and I have no problem with that...but when you ask for peoples opinions on features, they are going to give a response and also touch on other areas. From reading your diary and reading your touchy response I can only see that you don't rate Advogato as a forum. I have no relish in telling you that you are never going to get a 100% accuracy in on topic responses.

I suggest you re-read my response, and if you look at it you will see that I am expressing my own reponse to your interesting question. I am stating that you should read your audiences requirements (technical, aesthetic etc), and consider forking a project. My response about forking a project being not such a good idea is that there is no point in reinventing the wheel. If you look in any Open Source project, you will see an abundance of people encouraging developers to build on existing systems instead of creating new systems. The reason for this is The Linux/FreeBSD etc community have limited resources in developing software. What is the point in redoing the same work someone else has done time and time again. Obviously many people do this, but in differering directions...and that is fine. If you are going to write a new WM in a totally new direction, then I would fully agree with your creation of a new project.

After readiing your reply to my post I get the impression that you do not have much of a regard for other peoples comments if they do not inline with your. I wish you all the best from one Open Source hacker to another, but if I can help in one area...I hope I can help you to see peoples differing opinions on discussion theads both on and off topic. I myself wrote an article on Advogato recently, but when it went off topic I did not get into a tantrum over it. There are more important things to worry about.

RE: My Reply, posted 26 Feb 2001 at 03:59 UTC by angelsun » (Journeyer)

Yes I think your absolutely right jono. I agree with you 100%, silly me. I've had quite a case of the ass today. Must be the stress of my job catching up with me. Sorry for the selfish comments.

Angelsun, posted 26 Feb 2001 at 05:40 UTC by jono » (Master)

Ahhh...don't worry. We all have off days. All the best with your future projects. :-)

What's your metric?, posted 26 Feb 2001 at 23:42 UTC by cbbrowne » (Master)

  • Do you want something that has a small memory footprint?

  • Do you want to run as few programs as possible?

  • Do you want something that involves relatively little "fluff"?

  • Are you running a menuing/"panel" scheme from Gnome/KDE (or TkStep or such)?

    Eshewing functionality in the WM may make more code pop up elsewhere. And if you're planning to run a "panel" program, that may be a good trade-off.

The different options here provide meaningfully different metrics.

Personally, I tend to run WindowMaker in that it provides a reasonably attractive appearance, and is less consumptive of resources than some of its competitors. I'd prefer it if it didn't have application manager stuff, as it's easy enough to install something else that does that.

I used to care about memory consumption, but with 320MB to play with, that's no longer a matter of much personal significance. Wasting 64MB would be unfortunate, but I just don't care.

The latest and greatest "wild" option I've tried out is GwML. That one's a WM written in, and configured in OCAML. The fact that it uses a compilable configuration language means it's probably radically fast, but it seems almost as wild as Enlightenment, which means it's not likely to fit with "light."

My usual favorite "lite option" is wmx. It's pretty tiny; a 58K tarball of code, and is still reasonably powerful and dynamically reconfigurable in some ways.

I've used a lot of lightweight window managers..., posted 27 Feb 2001 at 00:33 UTC by argent » (Master)

And I keep going back to Windowmaker.

Here's what I'd like in a window manager:

Minimal window decorations... but I want *some*. Windowmaker is close to ideal in terms of area taken up. The 3d look, I can take or leave. The OpenLook window decorations are good, too, but I prefer the NextStep style... the OL ones take up less area, but they don't give you any more real estate if you tile windows... less, I think, because the windows end up wider. So go with those... you can remove the icons at the top, or make them more like the bottom with a title tab, but you really can't get away with less than a top and bottom bar. Forget about putting bitmaps or anything into the bars, though... just foreground and background color for each state, 2d.

I don't care for the dock or the docked icons at the bottom of the screen... they're too fat. Give me a Windows 9x style taskbar that vanishes when I don't want it... maybe make it zip to the side leaving only functional icons (clock, cpu meter, whatever you use that actually displays something) present. Make it a separate application if you like, so long as it feels like part of the WM and holds my icons. I want that real estate, and I need it more than the dock. I think Gnome or KDE has something like this, but it's still too fat as I recall. What the hell, just something that's easy to eyeball grep that gets out of the way.

I need multiple desktops, but I don't need any illusion that they're connected at the sides or top. Just give me a number in the bar that I can select.

No fancy animations. Not even the cool ones like the windowshade effect.

Smart window layout... at least as good as Windowmaker's. Better, arrange windows in layers based on what's on top of what, so the smart layout starts over again at the upper right when the bottom layer fills. Heck, this can replace desktops, if you can vanish layers at a whim. That would be a nifty feature... layered window groups, with the title bar indicating which layer they're in, and some kind of "hide layer" command. Yeh, this would be better than virtual desktops.

menus and button bindings configurable with some kind of plain text file that's EASY TO PARSE. I don't want a fancy library for it. Make it line oriented... hell, Windows INI files would be better than what Windowmaker uses.

Lots of ways of hiding windows. Combining tabs and Windowmaker's windowshade stuff, you could have the window vanish into nothing more than a tab. But don't bother animating it.

Basically, Windowmaker, just a little lighter...

Suggestions, posted 27 Feb 2001 at 18:59 UTC by nymia » (Master)

This is probably off-topic and probably not what you're looking for. But I think this would be a good idea for your 'lite' WM if you put a nice feature like voice and metadata.

Voice activated procedures or voice command seems to be the next frontier in providing better desktop experience and it would really help those people who are incapable of using the standard desktop access, which is via keyboard and mouse.

Metadata, using Ryanmuldoon's model would be a nice idea too. Implementing a metadata will definitely improve the metaphor. Or perhaps even morph it to something better.

My two cents.

Dilbert did a strip on that..., posted 1 Mar 2001 at 21:02 UTC by argent » (Master)

Voice activated UIs, that is. God, what a horrid idea.

Voice UI's, posted 2 Mar 2001 at 01:59 UTC by angelsun » (Journeyer)

Hmmm, ideas more ideas.... keep them coming!!!

features, posted 6 Mar 2001 at 15:18 UTC by lkcl » (Master)

features i find very important in any program:

- keyboard useability [disconnect the mouse from your reality: it will only slow you down...]. and my _personal_ keyboard useability is as fast-as-possible-with-as-few-keys-as-possible. i.e. no meta-this, meta-that. i.e. not emacs.

features i find to be useful in a window manager:

- a means to run programs.

- a series of short-cuts to commonly-run programs which is _easy to get to_.

- a means to get everything out of the way.

- a means to switch between programs.

it is an absolute imperative, of course, that keyboard useability applies to every single one of these things.

other than these requirements, i could not care less as long as it doesn't slow things down or get in the way.

window managers are a tool, not a be-all or end-all.

pretty-wizzy is just irritating. esp. in nt5 explorer.exe (fading menus, the underscore disappearing from menus until you press the alt key. web-content on the desktop: whoever thought of that should be SHOT it just fills the screen with unnecessary junk esp. in 800x600).

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page