xpra

Display Server Data Inventory

This document inventories the non-framebuffer data that Xpra can retrieve from a display server or its associated desktop-session services.

The inventory covers all supported platforms and distinguishes data that is:

Availability depends on the platform, server mode, configuration, and optional display-server extensions.

Window and Surface Metadata - X11

F / I / Q

For each managed, override-redirect, or tray window:

The current arbitrary-property blocklist excludes the usual _GTK, WM_, _NET, and Xdnd prefixes. Other properties may be forwarded when property synchronization is negotiated.

The protocol metadata surface is summarized in xpra/server/window/metadata.py, with the X11 sources defined in xpra/x11/models/core.py, xpra/x11/models/base.py, and xpra/x11/models/window.py.

Window-System Events

Mostly I; selected results become F

Core X11 events and their associated fields:

Extension events:

XRecord interception is diagnostic tooling rather than normal session forwarding. These events otherwise drive window lifecycle, metadata, refresh, clipboard, cursor, and bell packets. The raw event parsers are in xpra/x11/bindings/events.pyx.

Cursor and Pointer Data

F / I / Q

Common cursor packet data:

Pointer data:

Backend-specific sources:

Cursor packet construction is visible in xpra/server/source/cursor.py. Windows and macOS acquisition are in xpra/platform/win32/shadow/cursor.py and xpra/platform/darwin/shadow_cursor.py.

Display, Screen, and Monitor Topology

F / I / Q

Common data:

X11/RandR adds:

The base capabilities expose root size, maximum size, display identity, depth, DPI, and refresh rate in xpra/server/subsystem/display.py.

Desktop and Root-Window State

F / I / Q

X11 root properties:

XSettings:

The root-property readers are in xpra/x11/xroot_props.py, including ICC and Xresources data.

Keyboard and Input-Device Configuration

Mostly I / Q

X11/XKB data:

XI2 data:

This data is primarily used to establish and diagnose input mappings. Normal remote keyboard and pointer actions originate from the Xpra client, so those client-originated events are outside this server-data inventory.

Clipboard and Selections

F / I / Q

Protocol-level data:

Native formats include:

The generic clipboard packet schema is implemented in xpra/clipboard/core.py.

Desktop Notifications

F / Q

The Linux/POSIX notification forwarder receives:

Client action invocation and close responses travel in the opposite direction. The received D-Bus schema is explicit in xpra/dbus/notifications.py.

Xpra does not capture arbitrary session-bus traffic. Notifications, portal responses, and power-related signals are the specific subscribed D-Bus channels.

Session Audio

F / I / Q

Server speaker or monitor capture provides:

Audio buffer metadata originates in xpra/audio/src.py and is forwarded in xpra/server/source/audio.py. Client microphone input is excluded because it does not originate from the server desktop.

F / I / Q

XDG menu and desktop-session entries:

The exported fields are listed in xpra/platform/posix/menu_helper.py.

X11 system-tray retrieval includes:

Wayland Portal and PipeWire Metadata

Mostly I / Q; source or window descriptions become F

Portal responses:

PipeWire stream and frame descriptors:

The portal response path is in xpra/platform/posix/fd_portal_shadow.py, and native frame descriptors are constructed in xpra/codecs/pipewire/_native.pyx.

Native Shadow-Platform Data

F / I / Q

Windows

macOS

Linux EVDI

Session Lifecycle and Settings Services

Mostly I; selected events become F notifications or server events

POSIX signal subscriptions are shown in xpra/platform/posix/events.py.

Capability and Diagnostic-Only Display Data

Q / I

Scope Boundary

Included despite containing bitmap data:

Excluded: