Действительно отключите сенсорную панель по региону кнопки

Я просто установил человечность 16.04 как двойную загрузку с (предварительно установленным) Windows (на всякий случай, мне нужен он два раза в год...) на моем новом 13-ac004nf HP Spectre x360. В соответствии с Windows, сенсорная панель хорошо работает и интуитивно, но на Ubuntu это почти неприменимо. Проблема состоит в том, что зона кнопок чувствительна. Другими словами, сенсорная панель не похожа на это:

enter image description here

но как этот:

enter image description here

И каждый раз я поднимаю руку на левую зону кнопки (не нажимающий), указатель прекращает перемещаться, потому что система обнаруживает жест с двумя пальцами. Вот конфигурация, возвращенная synclient:

Parameter settings:
    LeftEdge                = 1605
    RightEdge               = 5337
    TopEdge                 = 1369
    BottomEdge              = 4487
    FingerLow               = 25
    FingerHigh              = 30
    MaxTapTime              = 180
    MaxTapMove              = 248
    MaxDoubleTapTime        = 100
    SingleTapTimeout        = 180
    ClickTime               = 100
    EmulateMidButtonTime    = 0
    EmulateTwoFingerMinZ    = 282
    EmulateTwoFingerMinW    = 7
    VertScrollDelta         = -113
    HorizScrollDelta        = -113
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 1
    MinSpeed                = 1
    MaxSpeed                = 1.75
    AccelFactor             = 0.0353857
    TouchpadOff             = 2
    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         = 28
    VertHysteresis          = 28
    ClickPad                = 1
    RightButtonAreaLeft     = 3471
    RightButtonAreaRight    = 0
    RightButtonAreaTop      = 4087
    RightButtonAreaBottom   = 0
    MiddleButtonAreaLeft    = 0
    MiddleButtonAreaRight   = 0
    MiddleButtonAreaTop     = 0
    MiddleButtonAreaBottom  = 0

и вот то, что возвращается less /var/log/Xorg.0.log | grep -i range:

[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1302 - 5640 (res 37)
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1116 - 4740 (res 64)
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[     5.776] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15

Я пытался играть с AreaBottomEdge, но это только отключает движущееся обнаружение... Что означает, что сенсорная панель все еще обнаруживает, что существует другой палец, касающийся ее, и она переходит к режиму жеста двойных пальцев (прокрутка). Я хотел бы, чтобы моя сенсорная панель вела себя как сенсорная панель с отдельными кнопками (как первое изображение) и не обнаружила что-либо по зоне кнопок. Как заставить это произойти?

5
задан 15 April 2017 в 21:32

2 ответа

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

Нетехническое решение

, Когда Вы не сможете найти программное решение, переключите скорости. Попытайтесь получить некоторый запас карты или что-то. Более тяжелый, чем бумага для принтера и легче, чем картон. Фигура, сколько слоев Вы испытываете необходимость. Отключите как раз достаточно, чтобы покрыть кнопки на области кнопки сенсорной панели и прикрепить ее к сенсорной панели с небольшим горячим связующим звеном или чем-то еще, что будет легко удалить позже.

Это не может быть симпатично, но Ваши кнопки больше не будут сенсорными, и Вы все еще сможете спешить их к лево-и щелкнуть правой кнопкой.

1
ответ дан 23 November 2019 в 10:41

сначала выполните список xinput для нахождения устройства (у меня есть HP x360 i7-6500u)

 ~/devops > xinput list                                                         
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen Pen                      id=10   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics 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 
....

, Вы видите в моем случае, идентификатор равняется 14 (SynPS/2 Synaptics TouchPad)

теперь, снова посмотрите возможности этого устройства

 ~/devops > xinput list-props "14" | grep Capabilities
    Synaptics Capabilities (330):   1, 0, 0, 1, 1, 1, 1

, если Ваше третье число является нулем (как я) затем, у Вас нет физической правильной кнопки и этой потребности, которая будет "эмулирована" программным обеспечением.

теперь, копия/usr/share/X11/xorg.conf.d/50-synaptics.conf к/etc/X11/xorg.conf.d /

 sudo cp -ax /usr/share/X11/xorg.conf.d/50-synaptics.conf /etc/X11/xorg.conf.d/

и теперь, в новом файле /etc/X11/xorg.conf.d/50-synaptics.conf определяет местоположение этого абзаца:

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
  Section "InputClass"
     Identifier "Default clickpad buttons"
     MatchDriver "synaptics"
     Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
     Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
   EndSection

Добавляют две дополнительных строки перед Опцией "SoftButtonAreas" "50% 0 82% 0 0 0 0 0":

 Option "ClickPad"         "true"
 Option "EmulateMidButtonTime" "0"

первый должен включить щелчок правой кнопкой и второй щелчок средней кнопкой.

Вы включили в своих настройках "Две прокрутки пальца", отключает это, чтобы только иметь прокрутку справа и нижнюю часть Вашей сенсорной панели.

Теперь, выход из системы, перезапуск, входит в систему снова и с удачей Ваш слева/справа, регионам нужно включить.

0
ответ дан 23 November 2019 в 10:41

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

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