Saturday, June 16, 2012

Awesome wm Versus Dynamic wm - The Showdown

Awesome and DWM are both Dynamic Window Managers, in fact, that's what dwm stands for. A dynamic window manager can both tile and float (both of these can also monocle). Tiling windows means that screen estate is taken up completely, making use of every pixel. Floating window managers have resizable windows, and moncling window managers only allow one window to take up the screen at one time. Here is a showdown between Awesome and Dynamic:

I made that word up, but it is a very important thing to consider when you're talking about window managers. How extensive theme support is, what widgets are available, and how easy it is to change settings all take play a huge role in what a user will choose for themselves in a window manager.

Dwm is written in <2000 lines of C. In fact, it is capped at 2000. It will never extend past this out of principle. To configure it, one must first edit the source code directly and recompile it. This is quite a burden, but it means that the entire window manager can be customized. You will want to customize it, too, because the default does not supply the user with some things they may want, like a system tray or even a clock.

Awesome has a file called "rc.lua" in /etc/xdg/awesome/rc.lua. This uses the lua programming language to take full control over some awesome settings. I do not know lua, but it was very easy for me to edit this file because of the parameter names. Changes here will be applied on the next login. ALWAYS keep a backup, because sometimes awesome refuses to start if there is a mistake, even if it is as small as a missing bracket.

Default settings are important for the type of person that wants their window manager to work for them right out of there box. Tiling window managers are for hobbyists and power users, but somebody that just wants to boost productivity could be looking into them and functionality right out of the box could be really helpful for them.

Dynamic has a whole set of useful keybindings by default, and they are pretty easy to learn if you take some physical notes. It integrates well with system defaults, like the default terminal for alt+shift+enter (launch terminal). It comes with 9 "tags" (workspaces for ex-unity users). There is one title bar that I felt could have used some work by default. There is no clock, no system tray, and an unnecessary advertisement for the version number of dwm. The learning curve is also a bit high, so don't expect to be able to use your mouse to launch anything. Using the keyboard will become easier as you learn, however. Unimportant: dwm will use your default desktop background.

Awesome comes with some helpful tools by default. There is a physical button on the top bar to change the mode. It has quite a few modes, some of which I disabled in rc.lua because of how useless they seemed. Modes can be switched from the keyboard or the mouse in the top right corner, near the default clock, date, and system tray. The clock is in 24-hour format by default, so if this is not your preferred way of tracking time it will take some getting used to. Awesome also has 9 tags. It comes with a window list on the top bar as well as an application launching button on the top right. The keybindings are very similar to that of dwm, but they use the mod4 (windows symbol, sometimes called "super") key instead of alt.

Extra information
Dwm didn't want to play nice with awn or tint2. Windows would ignore their modifications to the width of the screen and go past it. I found this pretty annoying since it did not include a window list. With a tiling window manager, it would be pretty redundant, but I had to give up a good friend named awn when I switched. Awesome works fine with both. Both of these window managers are BLAZINGLY (another made up word) fast. I have used both xfce and lxde, but both of these stomped on them in comparison.

Startup applications require configuration in both window managers, but this is far easier in awesome.

The Verdict
From about 5 hours of using each of the window managers, I would definitely, without a doubt, recommend Awesome to anybody looking to use a tiling window manager. It can act a bit buggy at times when moving windows by a mouse, but that is just a very minor inconvenience. It is set up very well to use a configuration file and to have some sane defaults. Dwm shoots itself in its own knee by forcing themselves to keep the project under 2000 lines of code, so awesome prospers as a result. I did feel that dwm documentation was pretty good.[/opinion]

1 comment:

  1. "Changes here will be applied on the next login. ALWAYS keep a backup, because sometimes awesome refuses to start if there is a mistake, even if it is as small as a missing bracket."

    One can restart awesome to apply changes. One can syntaxcheck the config file with "awesome -k" before.