Skip to main content

urirun-uinput

AI Cost Tracking

PyPI Version Python License AI Cost Human Time Model

  • 🤖 LLM usage: $0.0132 (2 commits)
  • 👤 Human dev: ~$459 (4.6h @ $100/h, 30min dedup)

Generated on 2026-07-05 using openrouter/qwen/qwen3-coder-next


The Linux uinput keyboard/mouse input surface primitive for urirun, extracted from urirun.connectors.inputs.uinput as a standalone, dependency-free package.

It synthesizes real keyboard and pointer events by writing to /dev/uinput via ioctls — the input half of a desktop surface (the capture half is the KVM connector / mutter backend). Pure stdlib (fcntl, os, struct, time) — no urirun dependency — so any connector can adopt it without pulling in the backend.

Why it's its own package

extraction_audit.py --preset E reports the connectors toolkit (which this belongs to) GREEN, and uinput itself pulls only stdlib. It is consumed by URI, swappable, and reusable across connectors — the same lift case as urirun-cdp. The KVM connector injects its own resolvers and adopts it.

Install

pip install -e .          # editable, from this repo

Back-compat

The old import path still works via a re-export shim in the urirun package:

from urirun.connectors.inputs import uinput   # → urirun_uinput.uinput (sys.modules shim)

So existing code and the test_kernel_adoption contract test (which guards the symbols the KVM connector relies on) keep working unchanged. That contract test skips gracefully when this package isn't installed, matching how the connector packages are tested in their own CI rather than urirun's.

Tests

PYTHONPATH=../urirun/adapters/python python -m pytest tests/ -q

The surface's own tests live here (tests/test_uinput.py); they exercise the event-encoding primitives without a real /dev/uinput device.

License

Licensed under Apache-2.0.

Metadata

Release files for urirun-uinput 0.1.1

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

Source distribution (sdist)

Source distribution for urirun-uinput 0.1.1
File Size Uploaded
urirun_uinput-0.1.1.tar.gz 10.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for urirun-uinput 0.1.1
File Interpreter ABI Platform
urirun_uinput-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 20.3 kB

Release files / urirun_uinput-0.1.1.tar.gz

Download URL urirun_uinput-0.1.1.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
791fc60f579ce08465c87af7b23e2899e8b0bc3ec6116a58379cabf56731571b
BLAKE2b-256 checksum
How to use checksums
696626e99c1bb20cd061cc91587e6e1cdf900a5f60b00522c59bbb80d2aa765f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / urirun_uinput-0.1.1-py3-none-any.whl

Download URL urirun_uinput-0.1.1-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7031ee63aea4fa09e9b4d42760f4faf45f03926cc4411655a13ab907c03c4b80
BLAKE2b-256 checksum
How to use checksums
7ae80dd8a222a93f055cc3dc31888416f92e0366327a052239a9c8570de2e6e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.1 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