Skip to main content
Version: 2.2 (dev)

Concepts

Concept pages explain how a part of SomeWM works and the reasons behind it. None is needed to follow a tutorial or a guide. Read one when you want to know why something behaves the way it does.

Start here​

PageExplains
Why SomeWMWhat SomeWM is for and what it is built from
The object modelOutputs, screens, tags, clients, wiboxes and widgets, and how they relate
SignalsHow events reach Lua and when handlers run
ArchitectureThe C core, the Lua libraries, the config and Clay

Layout and rendering​

In order; each builds on the one before.

PageExplains
How SomeWM drawsFrom a property change to pixels
How widgets are laid outWhat a widget declares, and why an old draw widget disappears
Clients and layouts in the same treeWindow frames and titlebars as part of the layout
Reading the treeFinding which rule gave a widget its size
Scene graphDrawing order: bands and client stacking

Windows and tags​

PageExplains
Client stackingVisual order versus focus and tiling order
Focus historyWhich window gets focus back
Master and stackHow tile places clients
Scrollable tilingHow the carousel sizes and scrolls columns
Why tags persistWhat the default config restores after a monitor reconnects

Platform​

PageExplains
AwesomeWM compatibilityThe policy on keeping an rc.lua working
Wayland vs X11Display-server differences that reach a config
Display scalingOutput scale, logical geometry and DPI
Session lockingBuilt-in and external locks, and what happens on failure
ScreenshotsWhat a capture contains and in which coordinates
Test modeWhat nested and headless instances isolate