Skip to content

Add EWMH support for XWayland windows (_NET_CLIENT_LIST, _NET_ACTIVE_WINDOW) #23

Description

@Marcus-Arcadius

Description

cua-driver (and other X11 automation tools) cannot discover or match XWayland windows on ShojiWM because the XWayland root window is missing EWMH properties:

  • _NET_CLIENT_LIST — not found (no window list)
  • _NET_ACTIVE_WINDOW — returns 0x0 (no active window tracked)
  • _NET_SUPPORTED — only lists a few atoms, not the full EWMH set

Impact

Tools like cua-driver, xdotool, wmctrl, and other X11 automation utilities cannot:

  • Enumerate visible windows by name/class
  • Match app names to window IDs
  • Focus or activate specific windows

Environment

  • ShojiWM (latest from flake)
  • NixOS 24.05+ (unstable nixpkgs)
  • xwayland-satellite enabled
  • cua-driver 0.7.1 (reports "6 visible top-level windows" via X11 but cannot match any app names)

Proposal

Implement EWMH compliance for the XWayland root window:

  1. Maintain _NET_CLIENT_LIST with all XWayland toplevel window IDs
  2. Track _NET_ACTIVE_WINDOW based on the focused Wayland toplevel
  3. Advertise supported EWMH atoms in _NET_SUPPORTED
  4. Set _NET_WM_NAME and WM_CLASS on XWayland windows (may already work via xwayland-satellite)

This would enable X11 automation tools to interoperate with ShojiWM-managed windows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions