Metadata-Version: 2.4
Name: drm-touch
Version: 0.1.0
Summary: Touch/pointer input for Raspberry Pi and embedded Linux: evdev touchscreen (or mouse) -> normalized screen-pixel events
Author-email: Carsten Bund <carstenbund@gmail.com>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://github.com/carstenbund/drm_touch
Project-URL: Repository, https://github.com/carstenbund/drm_touch
Keywords: drm,evdev,touch,touchscreen,input,mouse,pointer,raspberry-pi,raspberrypi,embedded,sbc,kiosk,linux
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: System :: Hardware
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
License-File: THIRD_PARTY_LICENSES.md
Requires-Dist: evdev
Dynamic: license-file

# drm_touch

Low-level touch **input** for the drm-stack — the input twin of `drm_display`.
Reads touchscreens directly from the Linux **evdev** subsystem
(`/dev/input/eventN`), with no X11, Wayland, or display server, and emits
normalized screen-pixel touch events.

Python package: `drm_touch` *(design stage — see [outline.md](outline.md))*.

```
drm_touch ──(x,y,phase)──▶ app ──hit_test()──▶ drm_screen
                            └──── submit(feedback) ──▶ drm_screen ─▶ drm_display
```

- Standardized transport: evdev + kernel multitouch protocol (no server needed)
- Normalizes raw device units → screen pixels (the one coordinate boundary)
- The **app** is in control: events go to the app, which queries `drm_screen`'s
  `hit_test()` and submits feedback — `drm_screen` holds no callbacks or app logic
- MVP scope: mouse-like tap / press / release / drag (single touch)

Part of the [drm_stack](https://github.com/carstenbund/drm_stack).
