Вопрос или проблема
Мне нужно отключить тачпад на моем ноутбуке. Я использую Gnome на Wayland.
libinput
должен обеспечивать эту функциональность, но, похоже, не обеспечивает.xinput
не работает, потому что я на Wayland.- Я думаю, что Gnome предлагал какой-то переключатель для этого в настройках ввода, но его там больше нет (Gnome shell 3.34 — возможно, это исключительная функция Xorg?).
Разве это так много, если я хочу отключить устройство ввода?
Правка: xinput
НЕ является решением!
В его справочной странице есть целый раздел о Wayland (выделение мое):
XWAYLAND
Xwayland — это X-сервер, который использует Wayland-композитор в качестве бэкенда. Xwayland действует как промежуточный слой между X-протоколом и Wayland-протоколом, но не имеет прямого доступа к аппаратному обеспечению. Устройства расширения ввода X, создаваемые Xwayland (“xwayland-pointer”, “xwayland-keyboard” и т. д.), отображаются на устройства Wayland-протокола, а не на физические устройства. Эти устройства расширения ввода X видны только другим X-клиентам, подключенным к тому же процессу Xwayland. Изменение свойств на устройствах Xwayland влияет только на поведение этих клиентов. Например, отключение устройства Xwayland с помощью xinput не отключит устройство в нативных приложениях Wayland. Другие изменения могут вообще не оказывать никакого эффекта. В большинстве случаев использование xinput с устройством Xwayland указывает на ошибку в оболочке скрипта, и xinput выведет предупреждение. Вместо этого используйте нативные методы конфигурации устройств композитора Wayland.
Кратко: : Если я отключу тачпад с помощью xinput
, он все равно будет продолжать работать, как и прежде, но приложения XWayland больше не увидят движение курсора.
Первое, что нужно сделать, это попробовать, будет ли полезна эта настройка dconf:
gsettings set org.gnome.desktop.peripherals.touchpad disable-while-typing 'false'
Она была установлена в false
, хотя название намекает на true
.
Эта настройка должна быть для конфигураций Xserver:
gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled'
Ноутбук также может отключать тачпад с помощью Fn+F5;
вы можете попробовать это.
Если это не сработает,
пожалуйста, добавьте вывод libinput-list-devices
к вашему вопросу.
Вам также может быть интересно взглянуть
на Touchpad Indicator – расширение GNOME Shell.
Другие методы не работали для меня на KDE Plasma, поэтому я попытался отключить тачпад наивным способом:
ydotool key 530:1 530:0
Эта команда, по сути, отправляет запрос KEY_TOUCHPAD_TOGGLE на включение или выключение тачпада.
Для того чтобы эта настройка работала, демон ydotoold
должен работать в фоновом режиме (например, как сервис systemd):
cat ~/.config/systemd/user/ydotoold.service
[Unit]
Description=Starts ydotoold service
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=3
ExecStart=/opt/ydotool/ydotoold
ExecReload=/usr/bin/kill -HUP $MAINPID
KillMode=process
TimeoutSec=180
[Install]
WantedBy=default.target
Теперь можно программно активировать/деактивировать тачпад, например, в скриптах или через KDE Connect.
Проверено на версии ydotool 1.0.4 из GitHub.
Это может сработать с xinput
, даже если вы используете Wayland.
Установите пакет xinput
, если это необходимо. Затем выясните, какое ваше устройство, набрав
xinput list | grep -i touch
Вы можете найти строку вроде “SynPS/2 Synaptics TouchPad”. Пропустите часть grep
, если список пуст, чтобы увидеть, сможете ли вы найти что-то еще, что звучит как тачпад.
Используйте эту строку (измените следующую команду по мере необходимости) и введите
xinput set-prop "SynPS/2 Synaptics TouchPad" "Device Enabled" 0
Вы можете снова включить тачпад, введя “1” вместо “0” в конце.
На KDE Plasma 6.2.2 вы можете создать ярлык. Настройки > Клавиатура > Ярлыки > Тачпад
Работает как часы.
Ответ или решение
Отключение сенсорной панели на ноутбуке под управлением Wayland
Если вам необходимо отключить сенсорную панель на ноутбуке с установленной средой Gnome на Wayland, вы столкнетесь с определёнными ограничениями, так как некоторые инструменты, такие как xinput
, не совместимы с Wayland. Однако, есть несколько методов, которые вы можете попробовать:
1. Использование настроек Gnome
В Gnome, переменные среды позволяют управлять поведением сенсорной панели. Вы можете попробовать следующий подход:
-
Откройте терминал и выполните команду:
gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled'
Эта команда пытается отключить события от сенсорной панели. Однако, обратите внимание, что данный метод может не сработать в версиях Gnome на Wayland.
-
Вы можете также попробовать изменить настройки для отключения сенсорной панели при наборе текста:
gsettings set org.gnome.desktop.peripherals.touchpad disable-while-typing false
2. Использование расширения для Gnome
Если стандартные настройки не решают вашу проблему, вы можете установить расширение Gnome “Touchpad Indicator”. Это расширение позволяет управлять сенсорной панелью через графический интерфейс и может иметь дополнительные настройки, которые позволят вам более гибко контролировать поведение устройства.
- Перейдите на страницу расширения и следуйте инструкциям для установки.
3. Использование ydotool
ydotool
— это утилита, которая позволяет отправлять команды на уровне клавиатуры. Вы можете настроить ydotoold
как системный сервис, который позволит вам привыкнуть к управлению сенсорной панелью через горячие клавиши или скрипты. Учтите, что для это необходимо установить ydotool:
-
Создайте системный сервис для
ydotoold
. В файле~/.config/systemd/user/ydotoold.service
добавьте следующее:[Unit] Description=Starts ydotoold service StartLimitIntervalSec=0 [Service] Type=simple Restart=always RestartSec=3 ExecStart=/opt/ydotool/ydotoold ExecReload=/usr/bin/kill -HUP $MAINPID KillMode=process TimeoutSec=180 [Install] WantedBy=default.target
-
Запустите и активируйте сервис:
systemctl --user daemon-reload systemctl --user start ydotoold systemctl --user enable ydotoold
-
Теперь вы можете отключить сенсорную панель, отправляя команду:
ydotool key 530:1 530:0
4. Другие рекомендации
Некоторые пользователи сообщают, что на некоторых ноутбуках можно отключить сенсорную панель с помощью сочетания клавиш. Обычно это комбинация Fn + F5
или аналогичные клавиши с иконкой сенсорной панели. Проверьте документацию вашего устройства.
Заключение
Отключение сенсорной панели на Gnome с использованием Wayland может вызвать трудности, но, используя приведенные выше методы, вы сможете найти подходящее решение. Метод с ydotool
может показаться наиболее универсальным и позволяющим программно контролировать устройство. Если у вас имеются дополнительные вопросы, не стесняйтесь их задавать.