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")

Installation

$ pip install py-vwayland

Per-platform wheels bundle the compositor binary (and, on glibc, its native libraries), so headless mode works out of the box — no display server, GPU, or extra packages required. Prebuilt wheels cover x86_64 / aarch64 / riscv64 on glibc ≥ 2.28 and x86_64 / aarch64 on musl (Alpine). For screenshot().to_pil():

$ pip install py-vwayland[pillow]

Quick sanity check:

$ python3 -c "import vwayland; c = vwayland.spawn(); print(c.info()); c.kill()"

Building from source and platform details (windowed mode, musl, other architectures): see docs/installation.md.

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 — any language/Unicode typing)
  • Clipboard and Unicode text paste (clipboard_get/clipboard_set/clipboard_clear, paste_text)

Documentation

See docs/ for full documentation.

License

Apache License 2.0 — see LICENSE.

Metadata

Release files for py-Vwayland 0.3.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.3.0
File Size Uploaded Provenance Actions
py_vwayland-0.3.0.tar.gz 15.9 MB With provenance Details for py_vwayland-0.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for py-Vwayland 0.3.0
File Actions
py_vwayland-0.3.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for py_vwayland-0.3.0-py3-none-musllinux_1_2_x86_64.whl
py_vwayland-0.3.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for py_vwayland-0.3.0-py3-none-musllinux_1_2_aarch64.whl
py_vwayland-0.3.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details for py_vwayland-0.3.0-py3-none-manylinux_2_28_x86_64.whl
py_vwayland-0.3.0-py3-none-manylinux_2_28_riscv64.whl Python 3 none Linux glibc 2.28+ RISC-V 64 Details for py_vwayland-0.3.0-py3-none-manylinux_2_28_riscv64.whl
py_vwayland-0.3.0-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details for py_vwayland-0.3.0-py3-none-manylinux_2_28_aarch64.whl
py_vwayland-0.3.0-py3-none-any.whl Python 3 none any Details for py_vwayland-0.3.0-py3-none-any.whl

Total release size: 47.8 MB

Release files / py_vwayland-0.3.0.tar.gz

Download URL py_vwayland-0.3.0.tar.gz
Size 15.9 MB
Tags Source
SHA-256 checksum
How to use checksums
4f6f66668e83bb14ecc31944868707e401c31fb8d328b776bfe9eeffcedd76ff
BLAKE2b-256 checksum
How to use checksums
48d33d4c0f980db8019c9085c8dbe1fbf3d04e165bbf5cf541309d894d9390ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / py_vwayland-0.3.0-py3-none-musllinux_1_2_x86_64.whl

Download URL py_vwayland-0.3.0-py3-none-musllinux_1_2_x86_64.whl
Size 2.9 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
10c22611fd8c2aa782f1b7f544042a661df0d4925de603200c224f245e3658e4
BLAKE2b-256 checksum
How to use checksums
63802f6f3a47c01e479e97c1d5a46435358e904add4dd06f69f2ab7622b05fa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / py_vwayland-0.3.0-py3-none-musllinux_1_2_aarch64.whl

Download URL py_vwayland-0.3.0-py3-none-musllinux_1_2_aarch64.whl
Size 2.7 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
1fbf0af0a7cd56e3a2550c8dcc989b1667f286ee07b49988208f72d57f1cfc6b
BLAKE2b-256 checksum
How to use checksums
38713f68fbced7565574fa9d5c8e9d34237e877128b0f3bae41fb9f41b436e0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / py_vwayland-0.3.0-py3-none-manylinux_2_28_x86_64.whl

Download URL py_vwayland-0.3.0-py3-none-manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
20a785dfe59279b003010783f90c3660a47afe0bfe634f121689ce187485ef84
BLAKE2b-256 checksum
How to use checksums
d36b67d8523d720287e5385e8a052687830f1325240cf313b6ff1c7811cd95e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / py_vwayland-0.3.0-py3-none-manylinux_2_28_riscv64.whl

Download URL py_vwayland-0.3.0-py3-none-manylinux_2_28_riscv64.whl
Size 3.7 MB
Tags Linux glibc 2.28+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
88a015cd862e1003778c04be0819e5b3d9e3fac3b75f857955ac206de9ad2a68
BLAKE2b-256 checksum
How to use checksums
c2d6811a4c4a8b17cfc3ffaa18d1a53bdebb88542213ba248c8f7653ffe7ef9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Release files / py_vwayland-0.3.0-py3-none-manylinux_2_28_aarch64.whl

Download URL py_vwayland-0.3.0-py3-none-manylinux_2_28_aarch64.whl
Size 3.8 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
c424afffbeec0a6e739cf4682636a82f3cb563efbb6274d8a05dc6ba2125e60d
BLAKE2b-256 checksum
How to use checksums
583679e28b030082a35f25bb904c12152ef99b7d6a935d6f324a880f5ee51e28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

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

Download URL py_vwayland-0.3.0-py3-none-any.whl
Size 15.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
34840743170a126072ef216a3008ac97e95c839bd93879300403a31474e5a782
BLAKE2b-256 checksum
How to use checksums
843e59de5b8ef69e2b282794c6915fa390f8635b42c2a60fc8fb7014da8d3dd4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 21, 2026.

Transparency log

Security for py-Vwayland 0.3.0

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.

Full provenance

All 7 files in this release have been uploaded with provenance metadata.

Select from 7 files

Attestation for py_vwayland-0.3.0.tar.gz

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 Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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