Тачпад распознается как обычная мышь ImPS/2 с колесиком

В bash:

Это работает с любым текстом и только с внутренними компонентами bash (внешняя утилита не вызывается), поэтому должна быть быстрой на очень коротких строках.

str="Stéphane áàéèëêếe"

[[ $str =~ ${str//?/(.)} ]]
(set -- "${BASH_REMATCH[@]:1}"; IFS=$'\n'; echo "$*")

Вывод:

S
t
é
p
h
a
n
e

á
à
é
è
ë
ê
ế
e

Если можно изменить IFS и изменить позиционные параметры, вы также можете избежать вызова вспомогательной оболочки:

str="Stéphane áàéèëêếe"
[[ $str =~ ${str//?/(.)} ]]
set -- "${BASH_REMATCH[@]:1}"
IFS=$'\n'
echo "$*"
2
17.04.2017, 04:07
1 ответ

У вас есть сенсорная панель, подключенная к порту мыши PS/2 (драйвер Linux i8042, названный в честь оригинального чипа), поэтому он автоматически определяется как универсальная мышь.

Попробуйте использовать драйвер synaptics (пакеты xf86-input-synaptics, xserver-xorg-input-synaptics и т. д. в зависимости от дистрибутива), как рекомендуется, например, здесь.

Зайдите в /dev/input/by-path/ и определите символическую ссылку, похожую на только что найденный путь к устройству, и ссылки на текущий /dev/input/eventX для сенсорной панели. Цифры для устройств ввода не гарантируется стабильность при загрузке (хотя они часто бывают), поэтому лучше использовать такую символическую ссылку.

Создайте файл xorg.conf (стандартный путь /etc/X11/xorg.conf) со следующим разделом

Section "InputClass"
   Identifier "touchpad"
   Driver "synaptics"
   MatchIsTouchpad "1"
   MatchDevicePath "/dev/input/by-path/path_to_your_touchpad"
EndSection

Добавьте параметры Option для его настройки. Посмотрите на /var/log/Xorg.0.log после перезапуска X или перезагрузки, чтобы посмотреть, все ли работает.

Для получения дополнительной информации прочитайте справочную страницу драйвера и погуглите «драйвер linux synaptics» и т. Д.

Edit:

Если нет символьной ссылки /dev/input/by-path на число, которое меняется при перезагрузке, попробуйте /dev/input/by-id. Если это также не сработает, вам понадобится правило udev. Сделайте

udevadm info -a -p /devices/platform/i8042/seriol/input/...

с текущим путем, это пройдет вверх по дереву пути и покажет атрибуты, которые вы можете использовать для его идентификации. Создайте новый файл правил udev, в моей системе это будет что-то вроде /etc/udev/rules.d/70-acer-touchpad.rules, и ваше правило, вероятно, будет выглядеть примерно так,вроде

ACTION=="add", SUBSYSTEMS=="serio", ATTRS{foo}=="foo", ATTRS{bar}="bar", SYMLINK+="input/by-id/acer-touchpad"

Детали зависят от вашей системы и атрибутов, которые вы видите, и будут нуждаться в настройке, пока она не заработает. Google «написать правило udev» для учебников и т. Д., И man udevadm.

Править

В соответствии с выходом udevadm,

looking at parent device '/devices/platform/i8042/serio1/input/input7':
  KERNELS=="input7"
  SUBSYSTEMS=="input"
  DRIVERS==""
  ATTRS{name}=="ImPS/2 Generic Wheel Mouse"
  ATTRS{phys}=="isa0060/serio1/input0"
  ATTRS{properties}=="1"
  ATTRS{uniq}==""

looking at parent device '/devices/platform/i8042/serio1':
  KERNELS=="serio1"
  SUBSYSTEMS=="serio"
  DRIVERS=="psmouse"
  ATTRS{bind_mode}=="auto"
  ATTRS{description}=="i8042 AUX port"
  ATTRS{firmware_id}==""
  ATTRS{protocol}=="ImPS/2"
  ATTRS{rate}=="100"
  ATTRS{resetafter}=="5"
  ATTRS{resolution}=="200"
  ATTRS{resync_time}=="0"

Сначала я бы попробовал ATTRS{phys}=="isa0060/serio1/input0". Возможно, вам нужно изменить SUBSYSTEMS=="serio" на SUBSYSTEMS=="input", если это не работает.

1
27.01.2020, 22:18

Теги

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