Skip to main content
otter-wayland is the shared Wayland client layer: compositor connection, layer and XDG surfaces, pointer and keyboard input, clipboard, SHM buffers, screen capture. Poll Connection.dispatch() in your main loop with config watchers and timer FDs.

Quick example

Documentation map

Connection and surfaces

Connection, layer shell, XdgToplevel, LayerPopup, workspaces.

Input

Pointer, keyboard, IME, clipboard, virtual keyboard, virtual pointer.

SHM and damage

DoubleShmPool, SingleShmPool, DamageTracker, Renderer.

Capture and overlays

Screen capture, selection overlay, dim overlay.

Protocols

wl_compositor, wl_seat, wl_shm, wl_output, zwlr_layer_shell_v1, ext_workspace_manager_v1, zwlr_foreign_toplevel_manager_v1, zwp_text_input_v3, ext_session_lock_v1, wl_data_device, wp_viewporter, wp_cursor_shape_manager_v1. Workspace providers also exist for Hyprland IPC, Niri, dwl, and Otter tag layouts.

Dependencies

otter-geo, otter-render, otter-utils, wayland-client, xkbcommon.