Skip to main content

Simulate multi-touch scrolling using uinput

Project description

touchscroller

Simulate smooth multi-touch scrolling on Linux with uinput.

On many Linuxes you can only scroll instantly over several lines. This package lets you script pixel-level scrolling by simulating two fingers on a touchpad.

Setup

pip install touchscroller

You must have the uinput kernel module loaded to use touchscroller. Two options:

  1. Quickly start it for now:
modprobe -i uinput
  1. Auto load on start up:
echo uinput | sudo tee /etc/modules-load.d/uinput.conf > /dev/null

You also need permissions to create a uinput device. Three options:

  1. Quickly run as root:
sudo python myscript.py
  1. Temporary fix until reboot:
sudo chmod 666 /dev/uinput
  1. Proper, most annoyingly involved way:
# create a udev rule
echo 'KERNEL=="uinput", GROUP="input", MODE="0660"' | sudo tee /etc/udev/rules.d/99-uinput.rules > /dev/null

# add current user to 'input' group
sudo usermod -aG input "$USER"

# reload udev rules and trigger
sudo udevadm control --reload-rules
sudo udevadm trigger

echo 'all done, now reboot or log out and back in'

Usage:

Important note: Before it actually starts scrolling, some threshold value has to be overcome probably in order to prevent accidental scrolling when breathing onto a real touchpad.

from touchscroller import TouchScroller

ts = TouchScroller()

directions = [
    (3, 0), (2, 2), (0, 3), (-2, 2),
    (-3, 0), (-2, -2), (0, -3), (2, -2)
]

ts = TouchScroller()
with ts.touch() as touch:
    for dx, dy in directions:
        for _ in range(30):
            touch.move(dx, dy)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

touchscroller-0.1.2.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

touchscroller-0.1.2-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file touchscroller-0.1.2.tar.gz.

File metadata

  • Download URL: touchscroller-0.1.2.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for touchscroller-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5dea7fe7f606540e2a2585f4dd0cf6fa348a8ccba6b4537b7acbcfc80d8b71a1
MD5 7b2c46b6eb71ea837796c2f2ef685b46
BLAKE2b-256 d45874284efd4bb2b0f3f3f5ff729e61b53f09684f324bd81f71d1b79b8f4681

See more details on using hashes here.

File details

Details for the file touchscroller-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: touchscroller-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 3.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for touchscroller-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 db5ca23bb7ff8ee84321d995171fd27a1cb8adfff4c11a29e09d407aa504ef17
MD5 2e0d2e4f281ef136ad4de2cd0873d047
BLAKE2b-256 ec11b0110c5b30d640cc39865825c507fdc59cd49bd364c450300aad4c04e0b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page