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 6f3ee2f9d7
Update changelog for 1.0.9 release
1 month ago
debian Update changelog for 1.0.9 release 1 month ago
res Updated 99-tuxedo-touchpad-switch.rules 3 years ago
.gitignore Add debian package files 4 years ago
CMakeLists.txt Fix build and runtime dependencies 2 years ago
LICENSE.txt Cleanup 4 years ago
ReadMe.md Remove legacy packageing command because it breaks debuild on buildserver 2 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 Disable logic during suspend to avoid race conditions 1 month ago
setup-kde.h Fix double unlock bug and some memory leaks 4 years ago
touchpad-control.cpp Add Plasma 6 support 5 months 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

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.