etyOS

YAWC, the compositor

What YAWC is

The Wayland compositor under etyOS: what it does and how it treats the desktop around it.

YAWC is the compositor of etyOS: the program that owns the screen. It places application windows and draws their frames, routes the keyboard and the pointer, starts the session, and serves the Wayland protocols desktop applications expect.

It is written in Rust on Smithay and is not built on KDE’s or GNOME’s compositor libraries. Where a bridge is the right tool it uses one: screen capture for portal-aware programs (OBS) goes through xdg-desktop-portal-wlr, which reads frames from YAWC’s own screencopy.

What it does

Windows

  • xdg-shell windows and popups, and X11 programs through XWayland (marked with a small badge on their frame).
  • Server-side decorations drawn on the GPU: rounded corners, a blurred title bar, light or dark with the appearance chosen in Settings.
  • Move, resize, maximize, snap to halves, minimize, full screen, keep above, close, kill.
  • An overview of all windows on Super, and an animated switcher on Alt+Tab.
  • Animations for opening, closing, geometry changes and decorations, tuned live from the config.

Input

  • Keyboard layouts and switching between them; hotkeys that are reloaded as the config changes and match the physical key, whatever the layout.
  • libinput settings for mice and touchpads, applied live.
  • Pointer lock and relative motion for games.

Screens

  • Several outputs with their own mode, scale (fractional) and position; hotplug; a primary output for new windows.
  • Frames paced by each display’s refresh, with presentation feedback for clients.

The desktop around it

  • The etyDE shell is managed directly: the dock that slides up from the bottom edge, the desktop surface under every window, the caret popups.
  • Glass: any client may describe regions of its window, and YAWC blurs what is behind them.
  • Clipboard (data device, primary selection, data-control, bridged with X11), drag and drop, xdg-activation.
  • A control socket for shell components.
  • Wallpaper, night light, screenshots and recording hotkeys.

How it treats the shell

The etyDE shell is ordinary Wayland clients (Nirvana applets). YAWC knows them by their app id and manages them itself instead of through layer-shell:

  • etyde-dock (dock, clock and launcher): undecorated, anchored to the bottom edge, always above. It slides in when the pointer rests on the bottom edge, stays while no window is open or the launcher is, and stays away while the focused window is full screen. It takes the pointer only on the regions it declares, and the keyboard only while the launcher’s search field asks for it.
  • etyde-desktop: kept over the whole screen and under every window.
  • etyde-caret (the layout indicator and clipboard history): moved to where the person is typing.

None of them appear in the overview, the switcher or the window list.

Next

Something wrong or missing on this page? Say so in the tracker (choose “Site and docs”).

Esc