Skip to main content

py-Vwayland

py-Vwayland logo

Spawn virtual Wayland compositors from Python, run GUI programs inside them, capture their screens, and inject mouse/keyboard events.

No desktop environment required: one program per compositor, fullscreen. The compositor is written in Rust (Smithay) and bundled into the package, so no system compositor or display server is needed (in headless mode).

import vwayland

with vwayland.spawn(width=1280, height=720, headless=True) as comp:
    comp.launch("my-gui-app")
    img = comp.screenshot()
    img.save("screen.png")
    comp.click(100, 200)
    comp.type_text("hello")
    comp.key("enter")

Key features

  • Create/list/terminate compositors (spawn, list, kill)
  • Open/close a program inside a compositor (launch, close_app)
  • Resize the screen (resize)
  • Switch between headless and windowed mode (set_headless)
  • Capture the screen (screenshot → PNG)
  • Mouse move/click/drag/scroll (move_to, click, drag, scroll)
  • Keyboard input (key, combo, type_text)

Documentation

See docs/ for full documentation.

License

Apache License 2.0 — see LICENSE.

Release files for py-Vwayland 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-Vwayland 0.1.0
File Size Uploaded
py_vwayland-0.1.0.tar.gz 2.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-Vwayland 0.1.0
File Interpreter ABI Platform
py_vwayland-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 5.7 MB

Release files / py_vwayland-0.1.0.tar.gz

Download URL py_vwayland-0.1.0.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
020694e28f54914cf828fe458d2413849c6c96456e063c9c3d2f8c1010046c56
BLAKE2b-256 checksum
How to use checksums
0596b353a4c240908f083f84a80e7abcf072d6befde2fca9dfb4f8402cb2511b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release files / py_vwayland-0.1.0-py3-none-any.whl

Download URL py_vwayland-0.1.0-py3-none-any.whl
Size 2.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
fbfc70ca24176eb45a4f37178170d74e574f1a16a8100f99103b68051715943f
BLAKE2b-256 checksum
How to use checksums
52107df427f9ae6dd9fdfb600851223073928503d7ec5299eda78c3c364e59c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page