September 7, 2010

What is it all about ?

Most of us are habituated to the default interface of Windows/ Apple OS featuring floating windows overlapping each other.  Even the most popular linux window managers – Gnome and KDE are both modelled after this stacked windows concept. The problem with such window managers ( which most of us do not even realize) that a lot of time is wasted in resizing windows and switching from one to another.

On large screen monitors it often becomes desirable to have multiple windows placed side-by-side. For example a programmer might want to keep open related documentation in one half of the screen while he is editing the code in an editor in another half.  Or while browsing the  web in one portion in the screen one may want to keep an eye on the music playlist/lyrics or some performance monitor in another. We see, that such cases are very common and in traditional window management system, repeatedly resizing or switching between windows soon becomes rather inconvenient.

It is this very problems that tiling window managers try to solve. There are several tiling window managers available out there for linux, the most popular of them being Awesome, Xmonad, Dwm, Ratpoison, etc.

So we know about tiling … Now lets check out  Awesome

In this post we review awesome, one of the most popular tiling window manager that encorporates most of the features that other window managers have to offer. It provides a fast, unobstructive and highly configurable interface that can be entirely controlled with key-strokes and yet is mouse friendly at the same time. A quick listing of features is here :

  • Very stable, fast and small codebase and footprint;
  • First window manager using asynchronous XCB library instead of the old synchronous Xlib: make awesome less subject to latency than many window managers;
  • Very well documented source code and API;
  • No mouse needed: everything can be performed with keyboard;
  • Real multihead support (XRandR, Xinerama or Zaphod mode) with per screen desktops (tags);
  • Implement many Freedesktop standards: EWMHXDG Base DirectoryXEmbedDesktop Notification,System Tray;
  • Doesn’t distinguish between layers: there is no floating or tiled layer;
  • Use tags instead of workspaces: allow to place clients on several tags, and display several tags at the same time;
  • A lot of Lua extensions to add features: dynamic tagging, widget feeding, tabs, layouts …;
  • D-Bus support;
  • And more.

Installation

Installation is a breeze. Awesome is available from the package managers of most of the popular linux distributions and users have the option to build from source as well. Detailed instructions for doing so are available here . Once installed user has to configure his environment for using Awesome as the window manager instead of the default window manager (which in case of Gnome is metacity and in case of KDE is kwin). Detailed instructions are available here.

Configurability .

Once installed the user may dive into configurations , awesome has a lot to offer. The main configuration file (written in lua language, which easy to understand and much more user friendly than languages like haskel and lisp which many other window managers use for configuration) offers users options to adjust the number of desktops available, backgrounds,theme, title bar visibility and much more. More details can be found here.

Integration with other desktop ecosystems

Awesome works well out-of-the-box independently or alongside Gnome or KDE. However the KDE integration, as I observed, is not very seamless and panel notifications and kickoff menu get tiled along-side other windows,thus disturbing the entire layout. KDE users might want to check out the tiling features available in KDE 4.5.

The flipside

Like everything else in the world, we have cons here as well. Many programs(eg. GIMP) have been designed keeping in mind floating window management and tiling of windows makes using such programs inconvenient. Luckily awesome gives you the ability to selectively float windows or tell awesome to permanently remember which applications should always be floating.  Also Awesome has minor issues with Java based applications but these have workarounds .

So while we do not expect Awesome to suit everybody, it might offer a productivity boost to some people, particularly programmers,sysadmins and other multi-taskers, specially those who are equipped with large screen monitors. Its definitely worth giving a try… check it out and tell us if it suits your needs.



If you have any computer related problem, you can ask it at our Question & Answer portal and our experts will answer your queries.

About

Gaurab Paul is an apprentice programmer particularly enthusiastic about web-development , FLOSS and multimedia related technologies. At present, he is a second year student of B.Tech course in Computer Science Department in IIT Kharagpur. Most of his free time is spent surfing the net, exploring fascinating web-technologies, tweaking linux or trying out some cool new softwares ....

Copyright © 2011 Comptalks - All Rights Reserved.