How To Get The Numpad Embedded Into The Touchpad Of Some ASUS Laptops To Work On Linux

ASUS Zenbook numpad touchpad

Some ASUS laptops come with a numpad (numeric keypad) embedded in the touchpad. You can toggle between the touchpad and numpad using a button placed in the top right-hand side corner of the touchpad.

That is, after you follow the instructions below, because this feature is not available by default on Linux.

You can get this numpad embedded into the touchpad to work on some ASUS Zenbook models by using this Python service / driver. This driver has been tested and should work with models like UX433, M433IA, UX525EA, UX525JA, UX431F, UX363EA, UX333FA, X412DA, and more. See the complete list of supported ASUS models here

I can also confirm it works on my ASUS Zenbook UX433FAC (with % and = symbols) running Ubuntu 21.04 Hirsute Hippo. It might work with other models as well, but it hasn't been tested.

[[Edit]] This has been updated to support setting the touchpad brightness. Tap the top left corner of the touchpad to switch between multiple brightness levels (there are 3 brightness levels for my laptop, I'm not sure if it's the same for all Zenbook models).

To get this to number pad embedded into the touchpad on some ASUS laptops to work on Linux, your system needs to use systemd, and you need to install libevdev2, python3-libevdev, i2c-tools and git:

  • Debian / Ubuntu / Linux Mint / Pop!_OS / Zorin OS:
sudo apt install libevdev2 python3-libevdev i2c-tools git

  • Arch Linux / Manjaro:
sudo pacman -S libevdev python-libevdev i2c-tools git

  • Fedora:
sudo dnf install libevdev python-libevdev i2c-tools git

For other Linux distributions you'll need to figure out the name of those packages (they should be pretty similar, but not always the same) and install them yourself. 

You might also like: How To Limit Battery Charging (Set A Charge Threshold) For ASUS Laptops On Linux

Next, enable i2c and make sure it detects the i2c chips:

sudo modprobe i2c-dev

sudo i2cdetect -l

Now you can get the latest ASUS Touchpad Numpad Driver for Linux from Git and install it using the following commands:

git clone https://github.com/mohamed-badaoui/asus-touchpad-numpad-driver

cd asus-touchpad-numpad-driver

chmod +x install.sh

sudo ./install.sh

And follow the setup process - the script will ask you if your ASUS laptop numpad / touchpad contains some symbols and the type of your keyboard layout: 

Asus numpad touchpad installer

Once you finish the setup, you should be able to toggle between a regular touchpad and a numpad using the button found in the top right-hand side corner of the touchpad.

It's worth noting that I only tested this using Ubuntu (21.04 Hirsute Hippo), because that's what I have running on this Asus Zenbook laptop, and testing this in a VM doesn't work.

In case you wish to uninstall it, there's an uninstall.sh script next to the install one. Run it as root and it will remove the ASUS Touchpad Numpad Driver for Linux.

You might like: Assign Actions To Touchpad Gestures On Linux With Touchegg.