LWN.net Logo

Openbox: A lightweight window manager (Linux.com)

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 10:16 UTC (Fri) by nix (subscriber, #2304)
In reply to: Openbox: A lightweight window manager (Linux.com) by drag
Parent article: Openbox: A lightweight window manager (Linux.com)

If the GNOME panel is obscuring the title bars, and the panel isn't hideable, it sounds like openbox's EWMH support is broken. (This is not something to be ashamed of: a lot of WMs have broken EWMH support to some extent. Rewriting anything other than very-low-level systems software *in C* probably *is* something to be ashamed of, though.)


(Log in to post comments)

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 10:44 UTC (Fri) by eru (subscriber, #2753) [Link]

Rewriting anything other than very-low-level systems software *in C* probably *is* something to be ashamed of, though.)

Well, what's the alternative for something like a WM? which is system software but not so low-level as to need register twiddling. Think before promoting some language X, because the issue is complex.

C is used because C is used: it is nowadays about the only language which is (A) available on all unix-like platforms, (B) well-standardized, (C) allows writing efficient system programs (not all C programs are efficient, but in many "advanced" langauges wiring efficient programs is difficult or impossible).

In some ways the advent of C in the '80:s set back the clock. The Wirth langauges (Pascal and especially Modula) that used to be popular allowed (in better implementations) quite efficient programs, but also had many safety features that have later been reinvented. I think a suitably extended Pascal would make a great systems language, but only if one could assume it is available on all interesting platforms.

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 12:45 UTC (Fri) by nix (subscriber, #2304) [Link]

I dispute your statement that a WM is `system software' in any real sense. Window managers do not need enormous efficiency or low-level access, and the X Protocol has interface libraries written in numerous languages. All a language really needs is network support.

I've seen passable WMs implemented in Haskell, Standard ML, OCAML, Scheme, Lisp... I'm sure there are Perl and Python ones out there if you look hard enough, and there's even one (XWEM) implemented in XEmacs Lisp (although I think *that* is going a bit far).

I'm sure it's theoretically possible to write a window manager in GNU Awk, although I'd suggest that anyone doing so be committed to a lunatic asylum immediately. ;)

system software

Posted Feb 3, 2006 14:21 UTC (Fri) by eru (subscriber, #2753) [Link]

I dispute your statement that a WM is `system software' in any real sense. Window managers do not need enormous efficiency or low-level access, and the X Protocol has interface libraries written in numerous languages. All a language really needs is network support.

Don't know what is the official definition, but Webopedia states: Refers to the operating system and all utility programs that manage computer resources at a low level. Software is generally divided into systems software and applications software. Applications software comprises programs designed for an end user, such as word processors, database systems, and spreadsheet programs. Systems software includes compilers, loaders, linkers, and debuggers. ( http://www.webopedia.com/TERM/s/systems_software.html). You probably agree that a WM is more like a manager for computer resources (the screen in this case) than like an application.

I think a more pertinent definition for "system software" would be a program that mainly facilitates or organizes the use of other programs that solve the user's actual problems, instead of solving them itself. While neither definition talks about low-level efficiency, a system program that itself hogs resources turns into part of the problem, instead of the solution. So if you want to write system software that does not steal resources from the apps that do the actual useful work, you use languages where you can control the resource usage. Today that usually means C.

language choice

Posted Feb 3, 2006 15:15 UTC (Fri) by astrophoenix (subscriber, #13528) [Link]

blackbox, which inspired openbox, was implemented in c++. after openbox came out, blackbox
was re-factored to provide a fairly clean, object-oriented interface for all the little utilities to use
(the bbtools, like bbkeys, bbmail, bbpager, etc). the goal being to allow implementation of helper
programs to be much easier.

after seeing that, re-writing openbox in C seems a step backward now that
blackbox is leveraging the power of the object-oriented paradigm.

I'm going to have to give blackbox and openbox a try again, I haven't run either of them in at least a
year now. I've been running ratpoison (when working) and kde (for leisure computing) now

language choice

Posted Feb 3, 2006 15:22 UTC (Fri) by zooko (subscriber, #2589) [Link]

When ratpoison started locking up too much for me, I switch to IonWM

http://www.modeemi.fi/~tuomov/ion/

I am well satisfied. There have been no crashes or lockups (except something that turned out to be a bug in the old Gtk libs that came with vmware workstation 5.0), the default out-of-the-box UI is usable and attractive (unlike ratpoison, which was usable but repellent), the customization features work fine, etc.

I later found out that IonWM started as a fork of the code of ratpoison. Codebase forks are a wonderful thing -- possibly one of the little-understood core features of Free Software.

language choice

Posted Feb 3, 2006 18:53 UTC (Fri) by astrophoenix (subscriber, #13528) [Link]

how could ratpoison look repellent when it's typically invisible? ;)

language choice

Posted Feb 3, 2006 18:57 UTC (Fri) by astrophoenix (subscriber, #13528) [Link]

belay that, I realize now you weren't talking about the look :D

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 16:07 UTC (Fri) by tjc (subscriber, #137) [Link]

Rewriting anything other than very-low-level systems software *in C* probably *is* something to be ashamed of, though.
Well, whatever. About the only thing most people have trouble with in C is memory management, and there's not much of that happening in a window manager. grepping through the source code for aewm I see one instance of malloc, when a new client window is created.

I personally have written web apps in C, usually with a tcl wrapper around them. It sure is nice to get an error message with a line number instead of staring a plain white web page wondering what I did wrong.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.