What is Awesome?

Awesome is a window manager and window manager toolkit. The window manager configuration file is written in Lua.

You could write your own window manager with it, but the default configuration, a tiling window manager with a preference for keyboard shortcuts, meshes nicely with how I like to use my computer.

Why not just use Awesome on its own?

You get a bunch of theming and widgets if you use Awesome with GNOME.

Why write the guide?

I need something to refer to when I install a system. I used to follow a friend's guide, but he moved to Xmonad, and the guide needs amending for Ubuntu 12.10.

I'm going to deviate from the previous guide, in that I'm not going to install gdm, since you're likely to already have a working desktop manager, and I'm going to install to system-wide configuration instead of per-user.

Installing the required software

sudo apt-get install awesome gnome-settings-daemon nautilus
sudo apt-get install --no-install-recommends gnome-session 

Installing gnome-session without its recommendations is required to prevent installing it pulling in all of Unity and GNOME Shell.

Installing configuration files

These bits are mostly the same, but I'm going to try and not require installing gdm, since you will already have a desktop manager installed.

Create the desktop application entry

Desktop application entries are for databases of which applications are instaled. Since a window manager isn't an application you'd usually launch it has NoDisplay=true.

sudo tee /usr/share/applications/awesomewm.desktop >/dev/null <<'EOF'
[Desktop Entry]
Exec=/usr/bin/awesome
Name=Awesome
NoDisplay=true
StartupNotify=false
Type=Application
Version=1.0
EOF

Create the desktop session file

This defines the desktop session to run, it knows to run by the Required-windowmanager referencing awesomewm, which is our desktop application file.

sudo tee /usr/share/gnome-session/sessions/awesome-gnome.session >/dev/null <<'EOF'
[GNOME Session]
Name=GNOME Awesome Session
Required=windowmanager;filemanager;
Required-windowmanager=awesomewm
Required-filemanager=nautilus
DefaultApps=gnome-settings-daemon;
RequiredComponents=gnome-settings-daemon;awesomewm
EOF

Create the xsession file

Your desktop manager looks at these files to work out what desktop sessions it can run.

sudo tee /usr/share/xsessions/awesome-gnome.desktop >/dev/null <<'EOF'
[Desktop Entry]
Name=Awesome GNOME
TryExec=awesome
Exec=gnome-session --session=awesome-gnome
Type=Application
EOF

Now when you log out you should be able to select "Awesome GNOME" from the sessions list. In vanilla Ubuntu, you have to click the Ubuntu logo to pick the session.

Testing status

These steps are known to work on the following installs:

  • XUbuntu 12.04.2
  • Ubuntu 12.10
  • Ubuntu 13.04