Skip to main content

asslayer

ASS subtitle desktop overlays for Wayland, rendered with libass and Vulkan. Python applications can supply ASS content, control playback and visibility, and provide interactive menus. Requires a compositor supporting wlr-layer-shell.

Install

Requires Python 3.14+, a C++20 compiler, Meson 1.3+, Ninja, pkg-config, Wayland (including wayland-scanner), Vulkan headers and loader, shaderc (including glslc), libass, and fontconfig. Install the development headers for these libraries when building from source.

From a source checkout:

uv pip install .

Use

import time
from pathlib import Path

from asslayer import ApplicationController

ctrl = ApplicationController(namespace="my-subtitles")
try:
    ctrl.set_ass_input(Path("subtitles.ass").read_text())
    ctrl.set_status(start_time_ms=int(time.monotonic() * 1000))
    ctrl.start()
    input("Press Enter to stop\n")
finally:
    ctrl.stop()
    ctrl.join()

Create controllers in a running Wayland session. The keyword-only namespace defaults to asslayer and must be non-empty without NUL bytes. It identifies the layer surface for compositor rules and cannot be changed after construction. Run separate processes with different namespaces to distinguish overlays; use a shared namespace when the same rules should apply to several overlays. Concurrent controllers within one process are not supported.

set_status controls paused, hidden, locked, start_time_ms, and target_fps. Read state for the current state and drag offsets. Commands are asynchronous. set_ass_input accepts ASS text rather than a path. set_animation configures visibility transitions, and reset_drag clears position offsets.

Supply menus with set_ui_menu, using dictionaries with label, optional action, and optional children. Read application actions with poll_ui_events and keyboard events with poll_key_events.

Set ASSLAYER_DEBUG=1 before importing asslayer to enable engine debug logs. Unset it or set it to 0 to disable debug logs.

License

GPL-3.0-only. See LICENSE. Vendored Dear ImGui retains its own license in vendor/imgui/LICENSE.txt.

Metadata

Release files for asslayer 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 asslayer 0.1.0
File Size Uploaded Provenance
asslayer-0.1.0.tar.gz 934.7 kB With provenance Details

Release files / asslayer-0.1.0.tar.gz

Download URL asslayer-0.1.0.tar.gz
Size 934.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c5cf1d72df9cc962fa78a7d3d25c3600be27175e78a537819fc58716330bc299
BLAKE2b-256 checksum
How to use checksums
80c632d62524a3fb108d397797687ae82dd1fe581d61eb2747d8f4df573997c8
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 24, 2026.

Transparency log

Security for asslayer 0.1.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 1 file in this release has been uploaded with provenance metadata.

Attestation for asslayer-0.1.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 24, 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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file Full provenance

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