Lite Window Managers
Posted 24 Feb 2001 at 16:12 UTC by angelsun 
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!
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).
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.
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!
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!
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.
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 freedesktop.org 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
manager...so 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 simle...man/women-power. 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. :-)
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.
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.
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).