A floating window manager for Wayland.
- Only floating mode, no tiling layout.
- Screenshot tool built-in: a region you drag out, a window, or the whole screen, saved and copied to the clipboard.
- Output management at runtime,
sol output set ..., the waywlr-randrtalks to a wlroots compositor. - Plan 9's cursors, an arrow, a cross while moving, a corner arrow per edge while resizing.
- Pointer acceleration,
adaptiveorflat, per libinput's own profiles, plus a speed knob. - Rubber-band select on bare desktop, the way Windows lets you drag a selection box over desktop icons, purely visual here.
- Config reloaded on save, no restart needed.
Points you might have questions about:
- Multi-monitor: Not tested, but should work
- Scaling: Per-output integer scale, no fractional scaling
- Xwayland: Never, Wayland only.
- Touch: input devices are recognized, but there is no touch event yet, mouse and keyboard only for now.
Needs swlr (installed first, see its own README), wayland-client, and xkbcommon. libpng is optional, needed only for the screenshot tool, without it screenshots are compiled out and the bindings say so once instead of silently doing nothing.
meson setup build
ninja -C build
ninja -C build install
For a static sol, install swlr static and let meson prefer archives:
meson setup build -Dprefer_static=true
Other subcommands:
sol validate [path] check the config, report everything it would
otherwise ignore in silence, and exit
sol outputs list a running sol's outputs and their setup
sol output set NAME [mode WxH[@Hz]] [position X Y] [scale S]
[enable|disable]
Lives at ~/.config/sol/config. Without one, sol runs on exactly what
doc/config contains, which is also the reference: every setting
is written out there with what it does.
Default keybinds:
| Binding | Action |
|---|---|
mod+return |
terminal (foot) |
mod+d |
launcher (fuzzel) |
mod+q |
close window |
mod+shift+q |
quit sol |
mod+f |
fullscreen |
mod+button1 / mod+button3 |
move / resize |
alt+tab |
cycle focus |
mod+1..0 |
switch workspace |
mod+shift+1..0 |
move window to workspace |
Print |
screenshot, pick a region, window or screen |
ctrl+alt+F1..F12 |
switch virtual terminal |
mod is the windows/super/logo key by default.
src/main.c the compositor: signals, bindings, workspaces, focus
src/window.c placement, moving, resizing, stacking
src/decor.c title bars and borders
src/config.c the config file and its reload
src/desktop_select.c rubber band selection on bare desktop
src/screenshot.c capture and the selection UI
src/output_ctl.c the "sol outputs" client
doc/config the default config, and the reference for all of it