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-shellwindows 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 onAlt+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
- Configuration: the config file, key by key.
- The control socket: the protocol the shell speaks.