Skip to main content
Version: 2.2 (dev)

How-to guides

Each guide solves one task on a configuration that already works. It gives the steps and what you should see, and assumes the tutorials or an existing rc.lua.

Bar and widgets​

GuideTask
Create or port a custom widgetA reusable widget with its own methods, or an old draw widget on 2.1
Update widgets from timers and commandsTimers, shell commands and signals as sources of change
Put a PNG texture on your wibarA background image at the bar's size
Configure notificationsPosition, timeout, look and rules for naughty
Animate clients, popups and widgetsEntrance, exit and property animations

Windows and layouts​

GuideTask
Write client rulesWhere windows open and how they behave
Control where focus goesRecent windows, fallback on close, utility windows
React to client lifecycleCode on open, focus, state change and close
Round client cornersA radius by rule, without the square border
Add shadowsCompositor shadows on windows and wiboxes
Write a client layoutYour own tiling layout
Carousel: set column widthsResize and cycle column widths
Carousel: center the viewportWhat the viewport follows
Carousel: scroll with gesturesTouchpad scrolling
Carousel: stack windows in a columnStack, split and rearrange

Input​

GuideTask
Organize keybindingsMedia keys, tag groups, mouse bindings, modules
Switch keyboard layoutsSeveral layouts and a switch key
Configure input devicesPointer and keyboard settings at runtime

Displays​

GuideTask
Set up multiple monitorsScreens, outputs and what goes where
Scale a HiDPI displayFractional output scale
Keep tags across monitor hotplugSave and restore tags when a monitor reconnects

Session​

GuideTask
Start applications at loginPrograms that start with SomeWM
Set up the lock screenLocking, idle timeouts and DPMS
Take screenshotsDesktop, screen, client and region captures

Config and debugging​

GuideTask
Replace a default handlerYour own behavior on a request::* signal
Defer startup with request::rulesStartup rules from modules, in order
Control SomeWM from the command linesomewm-client from scripts and the shell
Debug your configFind and fix Lua errors
Test in a nested compositorTry changes without touching your session