Linux userspace driver to enable and disable the touchpads on TongFang/Uniwill laptops using a HID command.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Werner Sembach cd61a8c0b8
Fix uncritical memory leak on exit
3 years ago
debian Update changelog 3 years ago
res Updated 99-tuxedo-touchpad-switch.rules 3 years ago
.gitignore Add debian package files 4 years ago
CMakeLists.txt Automatically set dependencies 4 years ago
LICENSE.txt Cleanup 4 years ago
MunkeiVersionFromGit.cmake Make dev build timestamp utc 4 years ago
ReadMe.md Update ReadMe.md 4 years ago
setup-gnome.cpp Fix uncritical memory leak on exit 3 years ago
setup-gnome.h Fix double unlock bug and some memory leaks 4 years ago
setup-kde.cpp Fix uncritical memory leak on exit 3 years ago
setup-kde.h Fix double unlock bug and some memory leaks 4 years ago
touchpad-control.cpp Merge remote-tracking branch 'brunoais/patch-1' 4 years ago
touchpad-control.h Merge GNOME and KDE logic and decide in programm what to run 4 years ago
tuxedo-touchpad-switch.cpp Add gracefull exit on previously unhandled error cases 3 years ago

ReadMe.md

About

This a Linux userspace driver to enable and disable the touchpads on TongFang/Uniwill laptops using a HID command. This will trigger the touchpad-disabled-LED, formerly unfunctional under linux.

Most desktop environments already have a way to disable the touchpad, but this setting never reaches the firmware of the device. This driver listens to the session D-Bus and dispatches the approprita HID call to /dev/hidraw* whenever the setting changes, closing the gap to the device itself, and enabling the built in LED.

Currently this driver was only tested and works on the GDM greeter, GNOME Shell, Budgie, and KDE Plasmashell. All other environments, including the tty-console, work as before, meaning touchpad is always enabled on the HID level.

Author: Werner Sembach tux@tuxedocomputers.com

Building

Testing

$ sudo apt install libudev-dev libglib2.0-dev
$ mkdir build
$ cd build
$ cmake ..
$ sudo make install
$ sudo reboot

There is also a target make package which is fine for testing, but it will not create a debian best practices compliant .deb. For this you need to use gbp buildpackage as described below.

Packaging

$ sudo apt install libudev-dev libglib2.0-dev git-buildpackage debhelper
$ rm -r build
$ gbp buildpackage -uc -us

A .deb package is created in the folder above the git repository.

Installing

After installing via make install or using the .deb you need to reboot your system for the driver to load.