fwm documentation
The top-level README is the tour: what fwm is and what it looks like. These pages are the manual — what every setting does, what every action is called, and how the pieces work.
| Page | What is in it |
|---|---|
| Getting started | Building, installing, starting a session, the first five minutes |
| Configuration | Every section of config.toml, key by key |
| Keybindings and actions | The default binds, the full action vocabulary, modes, mouse drags, gestures |
| Physics | How the simulation works, its units and limits, and what it deliberately does not promise |
| The interface | Tray, modes menu, launcher, desktop strip, wallpaper picker, visualiser, collision sound |
| fwmctl and the IPC | Reading state, changing settings live, streaming events, scripting |
| Troubleshooting | When something does not work, and how to find out why |
| Architecture | For anyone changing the code: the mirror, the threads, the file map, the tests |
Two conventions used throughout:
- px/s, px/s² — fwm’s world is measured in pixels and its physics scale is 100 px per metre, so earth gravity is 981 px/s². Every speed and acceleration in the config is in those units.
- The world is one strip. Ten desktops side by side in one coordinate space, 10 screens wide; the screen is a window onto it. “Desktop 3” is a position on that strip, not a separate space.