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.
