8000 GitHub - asus-linux-drivers/asus-dialpad-driver: Linux configurable driver for DialPad on Asus laptops. Asus DialPad is a physical controller that allows for intuitive fingertip control over parameters in apps, appears when is done tap on top right corner of touchpad for atleast 1s by default (configurable).
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Linux configurable driver for DialPad on Asus laptops. Asus DialPad is a physical controller that allows for intuitive fingertip control over parameters in apps, appears when is done tap on top right corner of touchpad for atleast 1s by default (configurable).

License

Notifications You must be signed in to change notification settings

asus-linux-drivers/asus-dialpad-driver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Asus touchpad DialPad driver

License: GPL v2 Maintainer All Contributors GitHub Release GitHub commits GitHub issues-closed GitHub pull-requests closed Ask Me Anything ! PRs Welcome Hits

Nix Flakes: Compatible

The driver is written in python and does not necessarily run as a systemd service (How to start DialPad without systemd service?). It contains the common DialPad layouts, you can pick up the right one during the install process. Default settings aim to be the most convenient for the majority. All possible customizations can be found here.

If you find this project useful, please do not forget to give it a GitHub stars People already did!

Changelog

CHANGELOG.md

Frequently Asked Questions

FAQ

Data collecting

  • Driver during installation collects anonymously data with goal improve the driver (e.g. automatic layout detection; data are publicly available here, you can provide used config using $ bash install_config_send_anonymous_report.sh)

Installation

Get the latest dev version using git:

$ git clone https://github.com/asus-linux-drivers/asus-dialpad-driver
$ cd asus-dialpad-driver
$ bash install.sh

or customized install:

# ENV VARS (with the defaults)
INSTALL_DIR_PATH="/usr/share/asus-dialpad-driver"
LOGS_DIR_PATH="/var/log/asus-dialpad-driver" # only for install and uninstall logs
SERVICE_INSTALL_DIR_PATH="/usr/lib/systemd/user"
INSTALL_UDEV_DIR_PATH="/usr/lib/udev"

# e.g. for BazziteOS (https://github.com/asus-linux-drivers/asus-numberpad-driver/issues/198)
$ INSTALL_DIR_PATH="/home/$USER/.local/share/asus-dialpad-driver"\
INSTALL_UDEV_DIR_PATH="/etc/udev"\
SERVICE_INSTALL_DIR_PATH="/home/$USER/.config/systemd/user/"\
bash install.sh

or run separately parts of the install script.

Try found Touchpad with DialPad:

$ bash install_device_check.sh

Add a user to the groups i2c,input,uinput:

$ bash install_user_groups.sh

Run driver now and every time that user logs in (do NOT run as $ sudo, works via systemctl --user):

$ bash install_service.sh

or for NixOS you can use flakes for the installation of this driver.

Important

In case the layout isn't provided, the "proart16" DialPad layout is used. The default value for runtimeDir is /run/usr/1000/, for waylandDisplay is wayland-0 and wayland is true.

The driver installation (NixOS)

This repo contains a Flake that exposes a NixOS Module that manages and offers options for asus-dialpad-driver. To use it, add the flake as an input to your flake.nix file and enable the module:

# flake.nix

{

    inputs = {
        # ---Snip---
        asus-dialpad-driver = {
          url = "github:asus-linux-drivers/asus-dialpad-driver";
          inputs.nixpkgs.follows = "nixpkgs";
        };
        # ---Snip---
    }

    outputs = {nixpkgs, asus-dialpad-driver, ...} @ inputs: {
        nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
            specialArgs = { inherit inputs; };
            modules = [
                ./configuration.nix
                asus-dialpad-driver.nixosModules.default
            ];
        };
    }
}

Then you can enable the program in your configuration.nix file:


8000
# configuration.nix

{inputs, pkgs, ...}: {
  # ---Snip---
  # Enable Asus DialPad Service
  services.asus-dialpad-driver = {
    enable = true;
    layout = "default";
    wayland = true;
    runtimeDir = "/run/user/1000/";
    waylandDisplay = "wayland-0";
  };
  # ---Snip---
}

Uninstallation

To uninstall run

$ bash uninstall.sh

# ENV VARS (with the defaults)
INSTALL_DIR_PATH="/usr/share/asus-dialpad-driver"
LOGS_DIR_PATH="/var/log/asus-dialpad-driver" # only for install and uninstall logs
SERVICE_INSTALL_DIR_PATH="/usr/lib/systemd/user"
INSTALL_UDEV_DIR_PATH="/usr/lib/udev"

# e.g. for BazziteOS (https://github.com/asus-linux-drivers/asus-numberpad-driver/issues/198)
$ INSTALL_DIR_PATH="/home/$USER/.local/share/asus-dialpad-driver"\
INSTALL_UDEV_DIR_PATH="/etc/udev/"\
SERVICE_INSTALL_DIR_PATH="/home/$USER/.config/systemd/user/"\
bash uninstall.sh

or run separately parts of the uninstall script

$ bash uninstall_service.sh
$ bash uninstall_user_groups.sh

Layouts

Layouts below are named by laptop models, but the name is not important. What is important is their visual appearance because they are repeated on multiple laptop models across series. The install script should recognize the correct one automatically for your laptop. If yours was not recognized, please create issue.

Name Description Image





asusvivobook16x






not nested





proartp16






nested

FAQ

How to start DialPad without systemd service?

  • layout name is required as first argument and as second argument can be optionally passed path to directory where will be autocreated config dialpad_dev (default is current working directory):
/usr/share/asus-dialpad-driver/.env/bin/python3 /usr/share/asus-dialpad-driver/dialpad.py <up5401ea|e210ma|..>

How to install the driver when is used pyenv for managing multiple Python versions?

$ git clone https://github.com/asus-linux-drivers/asus-dialpad-driver
$ cd asus-dialpad-driver

$ # pyenv install Ubuntu 22.04
$ apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
$ curl https://pyenv.run | bash

# install & change to the Python version for which one do you want to install the driver
$ CC=clang pyenv install 3.9.4
$ pyenv global 3.9.4 # change as global
$ # pyenv local 3.9.4 # will create file .python-version inside source dir so next (re)install will be used automatically saved Python version in this file

# install the driver
$ bash install.sh

# change to the standardly (previously) used Python version
$ pyenv global system

How can DialPad be activated via CLI?

  • directly just change enabled in the appropriate lines of the config file:
# enabling DialPad via command line
sed -i "s/enabled = 0/enabled = 1/g" dialpad_dev
sed -i "s/enabled = 0/enabled = 1/g" /usr/share/asus-dialpad-driver/dialpad_dev
# disabling
sed -i "s/enabled = 1/enabled = 0/g" dialpad_dev
sed -i "s/enabled = 1/enabled = 0/g" /usr/share/asus-dialpad-driver/dialpad_dev

Configuration

Keyboard layout

During the install process bash ./install.sh, you're required to select your keyboard layout:

...
1) asusvivobook16x.py
2) proartp16.py
9) Quit
Please enter your choice
...
Option Required Default Description
Position of DialPad
circle_diameter Required in px
center_button_diameter Required in px
circle_center_x Required in px
circle_center_y Required in px
Associated apps
app_shortcuts Optional Yes

Configuration file

Attributes which do not depend on a specific DialPad keyboard can be changed according to the table below in the config dialpad_dev in the installed driver location /usr/share/asus-dialpad-driver. See the example below showing the default attibutes:

[main]
disable_due_inactivity_time = 0
touchpad_disables_dialpad = 1
activation_time = 1
enabled = 0
Option Required Default Description
System
enabled 0 DialPad running status (enabled/disabled)
disable_due_inactivity_time 0 [s] DialPad is automatically disabled when no event received for this interval

decimal numbers allowed (e.g. 60.0 [s] is one minute, 0 set up by default disables this functionality)
touchpad_disables_dialpad 1 when Touchpad is disabled DialPad is disabled aswell
Layout
slices_count 1.0 [seconds] number of slices in the circle considered as steps when moving with finger around
suppress_app_specifics_shortcuts 0 app specific shortcuts are ignored when is specific window with app opened
Top right icon
activation_time 1.0 [seconds] amount of time you have to hold top_right_icon

Similar existing

  • I do not know any

Existing related projects

Why was this project created? Because linux does not support integration of DialPad into a Touchpad

Stargazer evolution for the project

Stargazers over time

Buy me a coffee

Do you think my effort put into open source is useful for you / others? Please put a star in the GitHub repository. Every star makes me proud. Any contribution is also welcome. Would you like to reward me more? There now exists a way : you can invite me for a coffee! I would really appreciate that!

For this ko-fi.com/ldrahnik is preferred instead of buymeacoffee.com/ldrahnik because of zero commissions.

BuyMeACoffee

Ko-fi supporters

Buy me a coffee supporters

About

Linux configurable driver for DialPad on Asus laptops. Asus DialPad is a physical controller that allows for intuitive fingertip control over parameters in apps, appears when is done tap on top right corner of touchpad for atleast 1s by default (configurable).

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published
0