ASUS Touchpad in Linux

Ноутбуки ASUS (серии ZenBook, Vivobook, ROG и TUF) отлично подходят для Linux, но «из коробки» многие фирменные функции не работают. Например, встроенный в тачпад цифровой блок (NumberPad 2.0), дополнительные Fn-клавиши или переключение профилей вентиляторов требуют дополнительной настройки.

К счастью, комьюнити создало отличный набор утилит и пользовательских драйверов, которые закрывают эти проблемы.


1. Управление питанием, подсветкой и профилями: asusctl

Драйвер ядра asus-wmi предоставляет базовый доступ к железу, но для удобного управления нужен демонизированный CLI/GUI-инструмент. Для этого используется asusctl (а также вспомогательная утилита supergfxctl для гибридной графики).

Что умеет asusctl:

  • Ограничение уровня заряда батареи: создание лимита (например, 80%), чтобы продлить срок службы аккумулятора, если ноутбук часто работает от сети.
  • Переключение профилей производительности: Quiet / Balanced / Performance.
  • Настройка кривых вентиляторов (Fan Curves): ручная регулировка оборотов кулеров в зависимости от температуры.
  • Управление подсветкой клавиатуры и Aura RGB.

Установка asusctl

Fedora (через Copr): sudo dnf copr enable lukenukem/asus-linux
sudo dnf install asusctl supergfxctl
sudo dnf update --refresh

Arch Linux / Manjaro: yay -S asusctl supergfxctl

ALT Linux (Сизиф): su -
apt-get update
apt-get install asusctl

Полезные команды asusctl в повседневной жизни:

  • Ограничить зарядку до 80%: asusctl chg-limit 80
  • Переключить профиль работы системы: asusctl profile -n
  • Изменить режим подсветки клавиатуры: asusctl led-mode -n
  • Включить демоны в systemd: sudo systemctl enable --now asusd

2. Подробный гайд: Активация NumberPad (asus-numberpad-driver)

На многих ZenBook, Vivobook и ROG цифровая клавиатура встроен прямо в сенсорную панель. В Linux ядро определяет тачпад как стандартное устройство ввода libinput, поэтому нажатие на иконки в углах тачпада по умолчанию ничего не делает.

Как работает asus-numberpad-driver?

Драйвер работает как системный демон на Python (numberpad.py). Он читает сырые события ввода из /dev/input/event* через evdev и libinput.

Поддерживаемые жесты и фичи:

  • Включение/выключение NumPad: зажмите правый верхний угол тачпада примерно на 1 секунду.
  • Регулировка яркости: удержание или одиночное нажатие на верхний левый угол меняет уровень подсветки сетки (обычно 2 уровня яркости).
  • Быстрый вызов калькулятора: свайп из верхнего левого угла к центру открывает системный калькулятор (gnome-calculator, kcalc и т.д.).
  • Параллельная работа тачпада: даже при включенном NumberPad движение пальца продолжает перемещать курсор, а одиночные «тапы» эмулируют нажатие цифровых клавиш.

Quick Start: Установка шаг за шагом

Шаг 1. Установка системных зависимостей

Драйверу обязательны библиотеки для работы с I2C шиной (для включения диодов), обработчики событий evdev и модуль systemd для логирования.

Ubuntu / Debian / Linux Mint: sudo apt update
sudo apt install python3-evdev python3-libinput python3-systemd i2c-tools git xdotool

Fedora: sudo dnf install python3-evdev python3-libinput python3-systemd i2c-tools git xdotool

Arch Linux / Manjaro: sudo pacman -S python-evdev python-libinput python-systemd i2c-tools git xdotool

Шаг 2. Активация модуля ядра I2C

Без этого драйвер не сможет достучаться до контроллера подсветки тачпада:

sudo modprobe i2c-dev
echo "i2c-dev" | sudo tee /etc/modules-load.d/i2c-dev.conf

Шаг 3. Клонирование и инсталляция

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

Во время работы инсталлятора скрипт спросит у вас модель ноутбука или тип раскладки NumberPad.


Как правильно выбрать раскладку (Layout)

Скрипт попытается определить модель через dmidecode (вы можете узнать имя своей модели вручную командой sudo dmidecode -s system-product-name).

В каталоге /usr/share/asus-numberpad-driver/layouts/ хранятся пресеты под разные геометрии сетки:

  • ux433fa, ux363, m433ia — классические 14-дюймовые Zenbook/Vivobook.
  • up5401ea, b7402 — более новые модели с увеличенными тачпадами.
  • gx551, g533, gx701 — игровые серии ROG Zephyrus / Strix.

Совет: Если вашей точной модели нет в списке, выберите модель с аналогичной диагональю экрана и формой тачпада. В 90% случаев геометрия совпадает.

NumberPad полноценно работает после установки


Личный опыт: грабли, баги и решение проблем

Использование драйвера в реальной жизни открывает несколько нюансов. Вот решения самых частых проблем:

1. Свет загорается, но цифры не печатаются (или наоборот)

  • Причина: Неверно выбрана раскладка, или драйвер не угадал координатную сетку (top_offset / right_offset).
  • Решение: Перезапустите инсталлятор sudo bash install.sh и выберите другую раскладку. Также можно вручную подправить координаты в файле конфига вашего лейаута в /usr/share/asus-numberpad-driver/layouts/название_раскладки.py.

2. Ошибка в логах ModuleNotFoundError: No module named 'systemd'

  • Причина: Не установлен Python-биндинг для journald.
  • Решение: Установите python3-systemd (в Arch python-systemd).

3. Не работает вызов калькулятора по свайпу в Wayland (GNOME / KDE)

  • Причина: Инструмент xdotool или команда вызова калькулятора не подхватывается из-под root сессии Wayland.
  • Решение: В файле /etc/asus-numberpad-driver/numberpad.env или прямо в конфигурации укажите явно вашу команду калькулятора, например: CALC_KEY_COMMAND=gnome-calculator

4. Проверка работы демона и отладка

Если NumberPad перестал реагировать, проверьте статус службы через systemd:

systemctl status asus_numberpad_driver.service

Для просмотра сырых логов и ошибок в реальном времени:

sudo journalctl -u asus_numberpad_driver.service -f


3. Обработка горячих клавиш: asus-wmi-hotkeys-driver

На некоторых моделях ASUS стандартные комбинации клавиш (например, кнопка переключения режимов веера, кнопка вызова ROG Center или отключение тачпада) посылают специфические WMI-события, которые Linux не связывает со стандартными X11/Wayland сочетаниями.

Зачем нужен asus-wmi-hotkeys-driver?

Драйвер прослушивает сырые события от asus-wmi и позволяет назначить на «нестандартные» кнопки любые Bash-скрипты или системные вызовы.

Установка:

git clone https://github.com/asus-linux-drivers/asus-wmi-hotkeys-driver
cd asus-wmi-hotkeys-driver
sudo bash install.sh

После установки в /etc/asus-wmi-hotkeys/ появляется конфигурационный файл, где можно связать код события (event code) с нужной командой в системе.


Итог

После настройки этих трех компонентов ноутбук ASUS под Linux начинает работать ничуть не хуже, чем под Windows:

  1. asusctl сохраняет ресурс аккумулятора и регулирует шум вентиляторов.
  2. asus-numberpad-driver возвращает полноценный калькулятор/NumPad прямо на тачпаде с поддержкой жестов и переключения яркости.
  3. asus-wmi-hotkeys оживляет все специфические клавиши на клавиатуре.