awesome

We're now ready to delve into a window manager that's going to require a little more configuration to be useful, and one of the most configurable is the modestly named Awesome.

It describes itself as the next-generation framework window manager, and openly admits it targets itself at "power users, developers and any people dealing with everyday computing tasks and who want to have fine-grained control of their graphical environment".

Awesome is the epitome of what tiling window managers are all about.

It's not difficult to install. Your chosen distribution should already have packages, and you just need to let it install these, log out of your current desktop, and log in again choosing Awesome as your new window manager.

At this point, there's a chance you might see nothing at all. This depends upon whether your distribution has decided to bundle a default and sensible configuration file with its packages, or whether it expects you to set up a productive environment from scratch.

If not, you'll need to hunt for the file called '/etc/xdg/awesome/rc.lua', which is used by default on Debian-based systems, and it's this you'll need to edit if you don't like the default configuration.

Windows sans frontières

The best way to describe the desktop you see using this specific configuration is austere. It looks more like the last generation of computer desktops than something designed for the next generation, but you'll find that applications launch blindingly quickly, and that Awesome's best feature – its window tiling – is already in full swing.

Just open the menu from the small, inconspicuous icon in the top-left corner of the screen. You'll find that this hides the standard list of applications installed on your system, as well as more direct links to a terminal client and an Awesome menu for quick access to documentation and the configuration file.

When you first launch an application, you should notice that it won't have the window border because Awesome doesn't want you to go dragging windows about. Instead, it takes a very strict approach to where each window is positioned, and how new applications appear on the screen.

To do this properly, it has to stop you dragging them around yourself, which is why there's no window border. But this also adds a slight level of inconsistency, because certain applications, such as Google's Chrome browser, have their own borders, and you will be able to drag these around.

Speed == Efficiency

The best thing about Awesome is that it's quick, and this means you can switch between various tile configurations instantly.

There's even an on-screen button to make this easier, and you can find it in the top-right corner of the display. Clicking on this will cycle through the various layout modes on offer, and the icons are designed to illustrate what each mode does to your windows.

The first is a blank icon with a small blob on the bottom left, and this is the closest Awesome gets to being a floating window manager.

It means there's no layout, and you can move application windows as you need to. The next mode splits the main display into various sub-sections – two on the left half and six on the right – themselves split into two columns.

It's a layout that's perfect for a system administrator who needs plenty of terminals open showing log files, and perhaps a couple of sessions for doing some real work.

Many of the following modes are a variation on this layout, rotating the splits around each edge of the screen. But there are a couple that differ significantly, including the same spiral layout KDE offers, a single-application full-screen mode and a mode that seems to add windows randomly.

The best way to find one that works for you is to experiment with each one and see how you get on.

These tricks can also be accomplished by using key combinations. As we've alluded to before, getting the most out of a tiling window manager is all about learning the shortcuts that make things happen quickly.

Switching between tiling schemes can be accomplished by pressing the left Windows key on your keyboard and the Space key, and there are dozens of other combinations that can make using Awesome a much more pleasant experience than hunting through the launch menu might suggest.

You can resize individual windows by holding the Windows key and either H or Shift+H, and you can run applications from the command line with Windows+R.

You might also have also noticed that Awesome seems to have a considerable number of virtual desktops, as indicated by the horizontal list of numbers next to the launch menu. Clicking on these will switch desktops in the usual way, or you can use the Windows key plus a number to do the same thing from the keyboard.

But the interesting thing about Awesome is that these aren't called virtual desktops at all. They're called Tags, and they're one of its key features. The main idea is that you can send applications to a specific tag, for which you've created the most useful layout and configuration for that kind of application.

But to get this to work, you need to delve into the configuration file.

Configure or die

You'll quickly find that all paths within Awesome lead to the configuration file. Over time and use, it's likely you'll either get frustrated with the way a feature works, or with the unnecessary tiling modes, or will want to change keyboard shortcuts or add new ones. All of these things, and more, can be changed by editing a text file, and it's this that makes Awesome so useful.

The power within the configuration file comes from its use of the Lua scripting language. Every property within the file is defined using Lua and, as a result, you can create dynamic and adaptable solutions that wouldn't be possible with any desktop using a static configuration file.

To illustrate the lengths to which this can be taken, there's even an example configuration file that embeds a complete Space Invaders clone. However, before you attempt anything on quite that level, it's worth getting to grips with the basics.

To get started, move the global configuration file for Awesome into a '.config/awesome' directory within your home folder. Debian users will find the original file at '/etc/xdg/awesome/rc.lua', and moving this to a user's own configuration folder will ensure any changes you make to your own configuration won't be applied to anyone else's desktop.

You can then make changes with any text editor, although something with Lua highlighting, such as Gedit or Kate, works best. The configuration file is well documented, though you can make many small changes without resorting to the manual.

At the beginning of the file, for example, you'll find a section that lists the various layouts we scrolled through earlier, and you can easily remove any of them from your desktop by either deleting the offending line, or by commenting it out with a double minus symbol at the beginning of the line (--).

------------------------------------------------------------------------------------------------------

First published in Linux Format Issue 140

Liked this? Then check out 10 of the best Linux window managers

Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register

Follow TechRadar on Twitter * Find us on Facebook