Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sol

A floating window manager for Wayland.

Features

  • 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 way wlr-randr talks to a wlroots compositor.
  • Plan 9's cursors, an arrow, a cross while moving, a corner arrow per edge while resizing.
  • Pointer acceleration, adaptive or flat, 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.

Status

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.

Building

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

Commands

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]

Configuration

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.

Big thanks

Layout

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

About

A floating window manager for Wayland.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages