Layer-based screen manager for Raspberry Pi and embedded Linux: persistent layers, compositing, and output to DRM/KMS
Project description
drm_screen
Stateful screen manager. Owns persistent layers, composites them into a
single frame, and pushes it to drm_display.
Python package: drm_screen.
drm_composer → drm_screen → drm_display
scene → cmds layers → frame →
composited DRM/KMS
frame pixels
- Owns layer state (named RGBA buffers: position, z, visibility, opacity)
- Z-ordered alpha composition → one canvas
- Exposes the command API that
drm_composertargets - Dirty-flagged render loop
All buffers are RGBA; the single RGBA→BGRA conversion happens in the backend
adapter just before drm_display. It does not parse HTML and does not
touch DRM/KMS.
See outline.md for the design.
Install
pip install drm-screen # also pulls in drm-display
pip install "drm-screen[assets]" # + pillow, for image/asset loading
Standalone — drm-screen is all you need to manage layers and drive a display.
Part of the drm_stack
Each package installs and runs on its own:
| Package | Role |
|---|---|
drm-composer |
screen-HTML → layer commands |
drm-screen |
layers → composited frame · this package |
drm-display |
frame → DRM/KMS pixels |
Full stack, bootstrap, and integration demo:
drm_stack.
License
GPL-3.0-or-later (see LICENSE). Use it freely under the GPL. For proprietary/closed use that cannot comply with the GPL, a separate commercial license is available — contact Carsten Bund carstenbund@gmail.com.
Dependencies are permissive (BSD/MIT) and installed separately; their notices are in THIRD_PARTY_LICENSES.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file drm_screen-0.1.0.tar.gz.
File metadata
- Download URL: drm_screen-0.1.0.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5deb2fcdb7507ce7d7e795c4093dcfeae8c33f8f3333e0b259c85a090f4d0bb8
|
|
| MD5 |
af411b7588da50b14fe948da896d46a1
|
|
| BLAKE2b-256 |
70e203174e047276d5f5c37f3db4c98f079990441806ed165890ea9cb5cf0d95
|
File details
Details for the file drm_screen-0.1.0-py3-none-any.whl.
File metadata
- Download URL: drm_screen-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82a2a2366c75973a1769b18a237443e48891c6c62d372693a202d8a43bc2acb0
|
|
| MD5 |
df4019ff2d74eec065661eab6be9082d
|
|
| BLAKE2b-256 |
7ac304765cc8759039f47c8106eb0254a12b9d12e817bd19ecce48f9eeea950b
|