LWN.net Logo

Advertisement

E-Commerce & credit card processing - the Open Source way!

Advertise here

Openbox: A lightweight window manager (Linux.com)

Posted Feb 2, 2006 23:08 UTC (Thu) by drag (subscriber, #31333)
Parent article: Openbox: A lightweight window manager (Linux.com)

Personally I use Openbox as a drop-in replacement for Metacity on my Gnome desktop. The only downside I see from it is that when launching programs sometimes their title bars are partially obscure by the gnome panel I have at the top of the screen.

Other then that it rocks. Everything that Metacity gets wrong this thing gets right. Also Metacity does something funky were I can't bind things like xbindkeys and whatnot to mouse keys. Openbox does not have this problem.

With it's easy to use (due to good documentation) xml configuration files me and my multi-multi-button'd trackball mouse has found all sorts of new and interestingly productive ways to manage massive amounts of open windows.

Also I now use ctrl/alt/shift combos with a specific mouse button to control my mpd (music player deamon).

OpenBox is a very good product. I think that Metacity folks could learn a lot from it.


(Log in to post comments)

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 2:49 UTC (Fri) by k8to (subscriber, #15413) [Link]

I looked at the article and saw the XML configfile and cringed. It looks like the took the clean readable blackbox configfiles and obscured them in xml cruft.

Here are some things that look really unpleasant to me. Why do menu items have an id=NUM field? Why do actions have a name but entries have a label? Do you edit this stuff directly or is there some config tool that makes this more bearable?

Openbox: A lightweight window manager (Linux.com)

Posted Feb 3, 2006 16:10 UTC (Fri) by mikachu (subscriber, #5333) [Link]

Menu items have id's because you can reference the id's from other places, most notably the config file entry that opens the menu needs the id. It's not hard to edit by hand but there are editors (obmenu.sf.net)

Openbox: A lightweight window manager (Linux.com)

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

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.)

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.