Which Freedesktop Standards and Multihead Features Does awesome Support?
Updated
awesome implements five named Freedesktop standards — EWMH, XDG Base Directory, XEmbed, Desktop Notification, and System Tray — and provides real multihead support through XRandR, with per-screen desktops implemented as tags. These capabilities are documented on awesomewm.org as core features of the window manager, so they apply to any standard installation rather than to an optional plugin or add-on.
Freedesktop standards implemented
The project lists the following interoperability standards as built-in:
| Standard | What it covers in practice |
|---|---|
| EWMH | Extended Window Manager Hints — lets panels, pagers, and other desktop tools query and control window manager state |
| XDG Base Directory | Standard locations for configuration and data files instead of scattering dotfiles in the home directory |
| XEmbed | Embedding of foreign windows into awesome's own windows, which is how tray icons and similar applets are hosted |
| Desktop Notification | The freedesktop notification protocol, so notification daemons can display messages through the standard interface |
| System Tray | The freedesktop system tray protocol for hosting tray icons |
Because these are implemented rather than approximated, third-party tools that speak the same protocols — status bars, notification daemons, tray applets — can interoperate with awesome without a compatibility shim.
One standard is notably absent from the list: there is no mention of the freedesktop window manager specification beyond EWMH, and no claim of ICCCM compliance in the source material. If a specific legacy application depends on a standard not named here, treat that as unverified rather than assumed.
Multihead support and tags
awesome's multihead support is described as "real multihead support (XRandR) with per screen desktops (tags)." Two things are happening in that sentence:
- XRandR is the X extension used to detect and react to monitor layout. Because awesome uses it, screens are handled as distinct outputs rather than as one large virtual desktop.
- Per-screen desktops means each physical screen gets its own set of tags. Tags are not a global pool shared across monitors; they belong to a screen.
This is the mechanism behind the "tags instead of workspaces" design. The documentation states that awesome does not distinguish between a floating and a tiled layer, and that tags allow you to:
- place a client on several tags at once, and
- display several tags at the same time.
For a multi-monitor setup, that combination is what lets you, for example, keep a browser visible on one screen while switching the other screen's tag set independently — the client stays on its tags, and each screen decides which of its tags are currently shown.
Other integration points
D-Bus support is listed among the features, which matters for scripting and for tools that expose or consume window manager state over the session bus. The documentation also notes that awesome is licensed under GNU GPLv2 and is built on the asynchronous XCB library rather than the older synchronous Xlib — the stated reason being reduced exposure to latency compared to other window managers.
What this means for choosing awesome
If your requirement is standards-based interoperability with panels, trays, and notification daemons, the five named standards cover the common cases. If your requirement is per-monitor independence rather than one desktop stretched across displays, the XRandR plus per-screen-tags design is the relevant feature. If you need a window manager that separates floating and tiled layers, note that awesome explicitly does not — that distinction is not part of its model.