Правило Udev автоматически отключить сенсорную панель, когда мышь USB подключена

Вам, вероятно, больше интересно способом к непосредственно доступу server2 из дома. Существует простое решение для использования формы соединения домой для server1 для создания туннеля, который позволит Вам непосредственно ssh к server2 из дома. Можно затем также сделать другие протоколы как SFTP или Rsync по SSH прямо между двумя. Как предложенный Gilles, посмотрите на проблему обработки файла соединений SSH Общего множителя

3
25.09.2015, 00:12
3 ответа

Я не схватываю, почему Ваше правило так сложно? Особенно этот раздел

ENV{ID_MODEL}=="USB_Mouse",\
ENV{DISPLAY}=":0",\
ENV{XAUTHORITY}="/home/nikitautiu/.Xauthority",\   
ENV{REMOVE_CMD}="/usr/bin/synclient TouchpadOff=0"

В первой строке Вы соответствуете переменной среды ID_MODEL который только замечен udev против USB_Mouse. В следующих трех строках Вы присваиваете значения переменным среды. Снова только замеченный udev и выполняемая команда synclient если правило применяется.

Я вполне уверен, что это правило никогда не применяется (Можно проверить это путем парсинга udevфайл журнала.), так как вероятно, что нет никакой переменной ID_MODEL с содержанием USB_Mouse доступный, если Вы не устанавливаете ID_MODEL в udev среда ранее.

Я предлагаю, чтобы Вы соответствовали против Действия, идентификатора поставщика и идентификатора продукта Вашей мыши, которая будет достаточна в большинстве случаев. Затем Ваше правило похоже

ACTION=="add", ATTRS{idVendor}=="<idVendor>", ATTRS{idProduct}=="<idProduct>", RUN+="/usr/bin/synclient TouchpadOff=1"

Можно добраться <idVendor> и <idProduct> путем парсинга вывода

lsusb -v

Я не помню, позволяются ли данные шестнадцатеричные значения в классической форме 0xffff. Я всегда принимаю только участие позади 0x в моих правилах.

5
27.01.2020, 21:13
  • 1
    Хорошо это работает, но это vendor или product иждивенец. Нет ли никакой attr или огибающая переменная для идентификации мыши USB? PS: это - шестнадцатеричное число по умолчанию, никакая потребность в 0x –  nikitautiu 12.09.2012, 11:02
  • 2
    более универсальный подход должен был бы соответствовать против ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01". Это определенные характеристики для мыши USB. Для получения дополнительной информации посмотрите lsusb -v и usb.org/developers/defined_class. –  user1146332 12.09.2012, 12:02

Поскольку принятый ответ не работает в моей системе вот правило udev , которое работает с gnome / gdm v. 3.16.2 и udev / systemd v. 226 :

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", \
ATTRS{bInterfaceSubClass}=="01", ENV{XAUTHORITY}="/run/user/1000/gdm/Xauthority", \
ENV{DISPLAY}=":0", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'SynPS/2 Synaptics TouchPad'", \
RUN+="/usr/bin/xinput --disable 'SynPS/2 Synaptics TouchPad'"

ENV {REMOVE_CMD} - это команда, используемая при удалении устройства.
SynPS / 2 Synaptics TouchPad - это имя устройства с тачпадом, сообщенное xinput .
UID , используемый в ENV {XAUTHORITY} (например, 1000 в моем правиле), должен соответствовать вашему идентификатору пользователя . .
Обратите внимание, что обратная косая черта в конце строк необходима, иначе правила udev не могут занимать несколько строк. Если вы предпочитаете в одной строке:

 ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/run/user/1000/gdm/Xauthority", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'SynPS/2 Synaptics TouchPad'", RUN+="/usr/bin/xinput --disable 'SynPS/2 Synaptics TouchPad'"
2
27.01.2020, 21:13

Учитывая другой ответ, который работает на плазме KDE (, sddm ).

Я добавил имя файла правил /etc/udev/rules.d/61-touchpadoff.rulesсо следующим содержимым:

ACTION!="add", GOTO="touchpadoff_end"

KERNEL=="mouse[0-9]", SUBSYSTEM=="input", SUBSYSTEMS=="usb", ENV{DISPLAY}=":0", ENV{REMOVE_CMD}="/usr/bin/xinput --enable 'Elan TouchPad'", RUN+="/usr/bin/xinput --disable 'Elan TouchPad'"

LABEL="touchpadoff_end"

Вам необходимо изменить название вашего оборудования сенсорной панели. Чтобы увидеть это, введите команду% xinput --list

Я надеюсь, что это поможет вам -руководителям KDE.

0
03.05.2020, 13:53

Теги

Похожие вопросы