Skip to content

MaxVerevkin/ewc

Repository files navigation

EWC - Experimental Wayland Compositor

Wayland compositor from scratch in Rust.

  • No wlroots or smithay.
  • No libwayland.

Roadmap

  • Enough to run foot, alacritty and mpv.
  • Sowfware (pixman) renderer.
  • OpenGL renderer.
  • Nested wayland backend.
  • Basic single-output drm/kms backend.
  • Basic dynamic window management (master-stack layout).
  • Full wayland.xml conformance (minus deprecated wl_shell).
  • Full xdg-shell.xml conformance.
  • Yes/no damage tracking.
  • Full damage tracking.
  • Direct scan-out support.

Supported protocols

  • wayland.xml (partial)
    • DnD
    • wl_output
  • xdg-shell.xml (partial)
    • Qt popups don't work (but GTK does)
    • Proper popup positioning
    • Popup dismissal
  • linux-dmabuf-v1.xml (v3, when using GL renderer)
  • viewporter.xml
  • single-pixel-buffer-v1.xml
  • cursor-shape-v1.xml
  • wlr-layer-shell-unstable-v1.xml
  • fractional-scale-v1.xml

Environment variables

  • EWC_NO_GL=1 to force software renderer.

Configuration

Config file is located at $XDG_CONFIG_HOME/ewc/config.toml or ~/.config/ewc/config.toml.

The default config is

# RGB color of the background
bg_color = [0.2, 0.1, 0.2]

# See `man xkeyboard-config`
xkb_layout = "" # System's default layout
# xkb_options = not set - i.e. the default options apply

# Example of a pointer config
#
# [pointer.'1267-12541-ELAN071A:00_04F3:30FD_Touchpad']
# tap_to_click = true
# natural_scroll = true

About

Wayland compositor from scratch in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages