Sway + wlroots

sway - i3-compatible Wayland compositor
wlroots - Wayland compositor library

Shawn Wang @ Kalug 1905



Xwin


Wayland


Current Wayland compositor

  • mutter - gnome
  • kwin - kde
  • wlroots - swaywm
  • mir - iot/unity8

sway 1.0

  • Better Wayland-native tools for internationalized input methods like CJK
  • Better accessibility tools including improved screen reader support, high-contrast mode, a magnifying glass tool, and so on
  • Integration with xdg-portal & pipewire for interoperable screen capture
  • Improved touch screen support for use on the Librem 5 and on postmarketOS
  • Better support for drawing tablets and additional hardware
  • Sandboxing and security features
  • wlroots
    • way-cooler (awesome wm)
    • wayfire 3d compositor
    • cage kiosk
    • more
  • https://github.com/swaywm/sway/releases
  • On-screen keyboards like virtboard are now supported

  • swayidle: idle management daemon
  • swaylock: lock screen
  • mako: notification daemon
  • grim: screenshot tool
  • slurp: interactive region selection
  • wf-recorder: video capture tool
  • waybar: alternative panel
  • virtboard: on-screen keyboard
  • wl-clipboard: xclip replacement
  • wallutils: fancy wallpaper manager

wlroots << wlc

  • provides backends that abstract the underlying display and input hardware
    • KMS/DRM, libinput, Wayland, X11, and headless backends,
  • wayland.xml and various protocol extensions.
  • wlroots provides several powerful, standalone, and optional tools that implement components common to many compositors, such as the arrangement of outputs in physical space.
  • Xwayland abstraction
  • renderer abstraction

Projects which use wlroots

list

tiling wm
  • sway(i3)/way cooler(awesome)/waymonad(xmonad)/bspwc(bspwm)
Stacking/ floating wm
  • waybox(openbox)/wio(rio)/..
touch
  • tablecloth/cage

Shells in wlroots

  • XDG shell
    • xdg-shell is currently the only shell whose protocol is considered stable
  • Layer shell
    • provide an interface for desktop components
      • panels
      • lock screens
      • wallpapers
      • on-screen keyboards
      • notifications

https://drewdevault.com/2018/07/29/Wayland-shells.html


Screenshots

  • Grim
grim screenshot.png
  • Slurp
grim -g "$(slurp)" screenshot.png

moka

notification


librem-5

puri.sm


postmarketos

Alpine for mobile device
postmarketos


RDP (remote desktop) backend

https://github.com/swaywm/wlroots/pull/1578

rdp backend


gdwlroots

wlroots with the Godot game engine

https://sr.ht/9bV-.webm


sharescreen

  • xdg-desktop-portal-wlr

https://drewdevault.com/2019/02/10/Wayland-misconceptions-debunked.html


https://thomas-leister.de/en/sway-window-manager/

https://puri.sm/products/librem-5/
https://puri.sm/posts/end-of-year-librem-5-update/

https://medium.com/@alex285/why-gnome-on-phones-will-fail-if-succeed-94777faf2af8

Select a repo