LWN.net Logo

Awesome: A window manager that gets out of the way

Awesome: A window manager that gets out of the way

Posted Nov 16, 2011 22:09 UTC (Wed) by alvieboy (subscriber, #51617)
Parent article: Awesome: A window manager that gets out of the way

OMG.... lua.

[note: I'd say the same thing if it were python, perl or lisp based]

I did not try "Awesome". Actually, I rushed to read this article because of it's title:

"Awesome: A window manager that gets out of the way"

As for "Awesome": I assumed LWN was actually impressed by the window manager. It happens to be it's name.... ok.

Second: "A window manager that gets out of the way". I was expecting it not to interfere with what I'm doing, but "visually minimalistic" is not what I was expecting. Rather "open popups where they belong", "place windows at right place", "don't steal my focus".

Third: I don't expect the window manager to be "highly configurable", because there are not many interesting things a WM can do (and as such, not much to configure anyway).

Then we have "lua". Could have been "python", or any other high level language. But that's not what I want from a WM (I use XFCE btw). I want a simple, fast, with low overhead window manager.

A window manager is just a window manager.

Alvie


(Log in to post comments)

Awesome: A window manager that gets out of the way

Posted Nov 17, 2011 1:34 UTC (Thu) by HelloWorld (guest, #56129) [Link]

> Then we have "lua". Could have been "python", or any other high level language. But that's not what I want from a WM (I use XFCE btw). I want a simple, fast, with low overhead window manager.
Yeah right, because lua is known for being complicated, slow and with high overhead... not!

Awesome: A window manager that gets out of the way

Posted Nov 17, 2011 6:23 UTC (Thu) by alankila (subscriber, #47141) [Link]

Amusingly, the man who wrote Awesome agrees in retrospect that he should have chosen Python. He wanted an object-oriented language and since LUA doesn't really provide you with this out of the box, he realized he was spending his engineering effort into writing a programming language implementation, not a window manager implementation.

He now advocates against LUA because of this, apparently.

Awesome: A window manager that gets out of the way

Posted Nov 17, 2011 19:12 UTC (Thu) by oblio (guest, #33465) [Link]

A bit strange, seeing this: http://www.lua.org/pil/16.html

Object oriented Lua

Posted Nov 17, 2011 23:33 UTC (Thu) by man_ls (subscriber, #15091) [Link]

Apparently Danjou is not happy with metatables as an object-oriented technique. You can read more about it in his 2011 blog (scroll down to "Why not Lua").

All my knowledge of Lua is theoretical, but the explanation in pil (from which you link the older online version) is really messy. I can relate to how JavaScript prototypes are a clumsy solution for a real class system. JavaScript also has other flaws such as the disappearing "this" reference. When you feel that a language is working against you instead of for you, you feel frustrated.

Of course with Python you have the obnoxious self parameter, and Java is not functional (pun intended), but what can you do about it. Obvious sentence of the day: no language is perfect, and choosing the right one for a particular job is really hard.

Object oriented Lua

Posted Nov 19, 2011 9:46 UTC (Sat) by alankila (subscriber, #47141) [Link]

The "this" reference does not disappear. It's just always set on every method call, and in this case it will be the contained DOM node, as you'd expect (it's the DOM node's method being called). You simply capture that other object into a variable -- a strategy you might not like -- but it's not unreasonable.

Incidentally, Java would allow people to write Node.this to represent the Node object, assuming the function objects were written as anonymous inner classes.

Object oriented JavaScript

Posted Nov 19, 2011 13:02 UTC (Sat) by man_ls (subscriber, #15091) [Link]

It is especially annoying in callbacks: I would expect that this would be part of the function context as any other closure, but no: this points to the DOM node where the callback is running.

It can be worked around, of course: using a real closure, or calling the callback using weird call() techniques. But it makes for one of those "what were they thinking" moments. Same for prototypes, metatables' bastard son.

Frankly, JavaScript is surprisingly sane given that it was invented in 10 days.

Awesome: A window manager that gets out of the way

Posted Nov 18, 2011 8:42 UTC (Fri) by alankila (subscriber, #47141) [Link]

*sigh* I wouldn't exactly call that an object system. Sure, it's not *that* complex to do from scratch if you insist, but the point here is, you are manually implementing an object system.

Apparently he wanted python's semantics, too, and was dismayed to discover that some internal functions like __len were not overridable for some built-in types. I'm going to guess this restriction was because of performance.

Awesome: A window manager that gets out of the way

Posted Nov 17, 2011 13:11 UTC (Thu) by nix (subscriber, #2304) [Link]

Well, in that case, you don't want lua. I see awesome as the first window manager in donkey's years that stands a chance of being configurable enough to supplant fvwm on my desktop. The switch from visual workspaces to tagging promises to be a wrench, but I can already feel the extra expressiveness and I haven't even started it yet. :)

Awesome: A window manager that gets out of the way

Posted Nov 18, 2011 0:05 UTC (Fri) by mathstuf (subscriber, #69389) [Link]

Technically, wouldn't any of the window manager toolboxes be enough? XMonad, Awesome, dwm, and (maybe) stumpwm to name a few.

Awesome: A window manager that gets out of the way

Posted Nov 18, 2011 9:48 UTC (Fri) by Yenya (subscriber, #52846) [Link]

> I see awesome as the first window manager in donkey's years
> that stands a chance of being configurable enough to supplant
> fvwm on my desktop.

Awesome is hardly the first programmable window manager (or even window manager programmable in a functional language). You must have missed at least sawfish (former sawmill), which has been the default WM in GNOME for years.

Yes, I am a happy sawfish user (now with XFCE), thanks for asking ;-)

Awesome: A window manager that gets out of the way

Posted Nov 21, 2011 14:51 UTC (Mon) by nix (subscriber, #2304) [Link]

I used sawfish intermittently for a bit, but it kept on rusting and then went maintenance-dead for years. I really should try again.

Awesome: A window manager that gets out of the way

Posted Nov 21, 2011 15:02 UTC (Mon) by Yenya (subscriber, #52846) [Link]

Yes, the original author (John Harper, IIRC) has abandoned it after GNOME has gone the metacity way, but now a new group of people picked it up, and continue its development.

Awesome: A window manager that gets out of the way

Posted Nov 21, 2011 22:31 UTC (Mon) by nix (subscriber, #2304) [Link]

IIRC, for "abandoned" you should read "went to work for Apple, who demanded as a condition of employment that he cease work on Sawfish". Rather nasty of them, if true.

Awesome: A window manager that gets out of the way

Posted Nov 22, 2011 8:12 UTC (Tue) by Yenya (subscriber, #52846) [Link]

Interesting, I did not know that.

I had the impression that he declared sawfish has reached the mature state, so it did not need further development at all.

I have even managed to look it up - I think this was the point where the group of developers decided to take over the sawfish development, and make a formal release after long time:

http://www.mail-archive.com/sawfish-list@gnome.org/msg005...

Awesome v. fvwm

Posted Nov 23, 2011 23:01 UTC (Wed) by massysett (guest, #52736) [Link]

If you're an fvwm user, you will probably lament the documentation of Awesome. Configuring anything in Awesome required reading the Lua API docs, which in my experience left something to be desired. I found it interesting that Danjou said Awesome is nearing maturity, because I didn't think the docs were one of a mature application.

Fvwm on the other hand has superb documentation. Having used GNOME, KDE, xmonad, awesome, and a little bit of fluxbox, I have landed on fvwm. It has the best documentation, the most stability, and the least bugs--zero that I have found. Xmonad was nice but it practically required keyboard usage--it's hard to even configure things like window decorations. I like the keyboard but the mouse shouldn't be second class. I found some bugs in xmonad that would cause the window manager to completely lock up. Awesome's documentation is not the best, and it suffered from bugs as well--I had some problems with decorations on floating windows, for example.

The only thing I miss on fvwm is automatic tiling. However, FvwmRearrange allows tiling at the press of a button. Since I now use a lot of desktops (20) I find I don't have much need to rearrange windows automatically because each desk has the windows arranged as I need them. FvwmPager makes it easy and manageable to use a huge number of desktops.

If you already know fvwm I don't think you'll gain much from trying awesome. I also urge new users to try fvwm. It's not very hip--maybe because it is old--but for configurability, stability, and documentation it can't be beat.

Awesome: A window manager that gets out of the way

Posted Nov 17, 2011 13:54 UTC (Thu) by chsnyder (guest, #52714) [Link]

Sure, most people think a window manager is just a window manager, and why should they have to edit the configuration file to put titlebars on the windows, for cryin' out loud?

But for a few of us, we jump for freaking joy when we see that. Holy cow! No titlebars! Think of all the extra pixels we get for actually getting work done!

The utility is in the choosing. Sometimes you want/need a window manager that lets you put windows exactly where you want them with zero chrome. And thank goodness there is finally a modern alternative to fvwm for that.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds