ELAN Touchpad - отключить во время набора текста не работает?

Я люблю свой новый ноутбук. Быстрый процессор, m.2 ssd, свободная память, xUbuntu работает отлично.

Тем не менее, Tocuhpad сводит меня с ума! Пока я печатаю, щелчки мышью в любом окне заканчиваются. Хуже всего то, что функция "Отключить тачпад во время набора", которая должна об этом позаботиться, не работает.

Начнем с некоторых спецификаций:

#uname -a
Linux PickledPeanuts 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
#cat /etc/issue
Ubuntu 16.04.1 LTS \n \l

#ps ax|grep syndaemo
13764 pts/6    S+     0:00 syndaemon -i 3 -KR
13793 pts/2    S+     0:00 grep --color=auto syndaemo
#xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1010:00 04F3:3012 Touchpad            id=12   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=15   [slave  keyboard (3)]
    ↳ DELL Wireless hotkeys                     id=16   [slave  keyboard (3)]
#ps ax|grep wm
 2062 ?        S      0:15 xfwm4 --replace
13860 pts/2    S+     0:00 grep --color=auto wm
#dmesg|grep -i elan
[    1.604814] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x4d5f02)
[    1.617181] psmouse serio1: elantech: Synaptics capabilities query result 0x00, 0x15, 0x10.
[    1.629063] psmouse serio1: elantech: Elan sample query result 0c, 02, 75
[    1.692084] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input6
[    2.194620] input: ELAN1010:00 04F3:3012 Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-4/i2c-ELAN1010:00/0018:04F3:3012.0001/input/input12
[    2.194862] hid-multitouch 0018:04F3:3012.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN1010:00 04F3:3012] on i2c-ELAN1010:00
#
#synclient 
Parameter settings:
    LeftEdge                = 128
    RightEdge               = 3092
    TopEdge                 = 130
    BottomEdge              = 2292
    FingerLow               = 1
    FingerHigh              = 1
    MaxTapTime              = 180
    MaxTapMove              = 177
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = 80
    HorizScrollDelta        = 80
    VertEdgeScroll          = 1
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0496401
    TouchpadOff             = 1
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 2
    RBCornerButton          = 3
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 3
    TapButton3              = 0
    ClickFinger1            = 1
    ClickFinger2            = 3
    ClickFinger3            = 0
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 200
    CoastingSpeed           = 20
    CoastingFriction        = 50
    PressureMotionMinZ      = 30
    PressureMotionMaxZ      = 160
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    ResolutionDetect        = 1
    GrabEventDevice         = 0
    TapAndDragGesture       = 1
    AreaLeftEdge            = 0
    AreaRightEdge           = 0
    AreaTopEdge             = 0
    AreaBottomEdge          = 0
    HorizHysteresis         = 20
    VertHysteresis          = 20
    ClickPad                = 1
    RightButtonAreaLeft     = 1610
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 1986
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0
#

Обратите внимание, что сенсорная панель ETPS/2 Elantech отключена в окне настроек мыши и сенсорной панели. Когда ELAN1010:00 04F3:3012 Сенсорная панель отключена, тачпад больше не работает (так что именно он используется).

Что я пробовал (без разницы):

  • Стандартная опция "Отключить тачпад во время набора" в интерфейсе
  • отключение выше и запуск syndaemon -i 3 -DK
  • отключение выше и запуск syndaemon -i 3
  • Запуск Syndaemon от имени пользователя root (на всякий случай)

Как я знаю, если это работает / не работает:

  • Постоянно нажимайте одну клавишу в окне
  • во время выполнения вышеуказанного нажатия на сенсорную панель в другом окне
  • если фокус переключается на другое окно, сенсорная панель не отключается при наборе текста

Теория пары относительно того, что может происходить:

  • Драйвер сенсорной панели просто не работает правильно
  • syndaemon отключение неправильной записи сенсорной панели (как проверить / исправить?)
  • syndaemon не определяет активность клавиатуры (как проверить / исправить?)

Я не хочу быть придурком, когда обращаюсь за помощью, но прежде чем кто-то предложит "создать командный файл, чтобы отключить тачпад и сопоставить его с клавишей", обходной путь. Я уже знаю об этом, но это просто не жизнеспособное решение для меня. Большую часть моего времени я провожу, нажимая, набирая несколько строк, нажимая снова. и т.д. Я специально ищу, чтобы отключить тачпад во время набора текста. Я очень техничен, использую разные версии linux около 18 лет и программирую уже 20 лет. Тем не менее, я не знаю задействованных кодовых баз и хотел бы получить некоторую помощь в поиске этого.

1 ответ

Привет, у меня была такая же проблема, и я нашел решение. Я где-то читал, что драйверы для мыши путаются, когда в xinput указано несколько устройств для мыши.

Итак, я только что проверил это и сделал следующее, чтобы остановить перемещение курсора в другое место во время ввода:

От твоего xinput list Я вижу, что тачпад, который нужно отключить, - это ID 14. Просто запустите в терминале:

xinput set-prop 14 "Device Enabled" 0

Ваша мышь должна по-прежнему работать с касанием и физическим щелчком. Теперь, если вы печатаете, пытаясь нажать в другом месте, где он не должен потерять фокус (физический щелчок все равно заставит его потерять фокус, но я пока не понял, почему это так. Однако это не большая проблема для меня, так как я никогда не опираюсь на планшет) достаточно при наборе, чтобы заставить его щелкать таким образом). Теперь вам просто нужно запустить это при запуске, чтобы не было обнаружено двух разных мышей одновременно.

Другие вопросы по тегам