Недавно я получил новый Lenovo Y50, и я использую Ubuntu 14.04. На моем предыдущем Dell XPS 17 тачпад имел превосходную реакцию даже при небольшом перемещении пальца - перемещая палец на очень короткое расстояние, я мог перемещать мышь на пиксель за раз, что было очень полезно, например, для захват узких оконных границ. Однако на этой новой машине мышь не реагирует, пока я не переместил палец примерно на полсантиметра, после чего мышь прыгнет на дюжину пикселей или около того. Когда мышь движется таким образом, я могу перемещать ее на произвольно точные расстояния, двигая пальцем медленнее. Я хотел бы иметь такую жесткую точность, даже если я еще не двигаю мышь. (Примечание: эта проблема не возникает при использовании USB-мыши.)
Я думал, что отключение noise cancellation
в xinput
может помочь, поэтому я установил нулевые значения шумоподавления, но это не помогло Обнаружение ладони также установлено на ноль. Кто-нибудь знает, как добиться точности мыши при небольших движениях сенсорной панели?
Спасибо!
Для справки, xinput
свойства:
$ xinput list-props 'ETPS/2 Elantech Touchpad'
Device 'ETPS/2 Elantech Touchpad':
Device Enabled (155): 1
Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (278): 1
Device Accel Constant Deceleration (279): 1.750000
Device Accel Adaptive Deceleration (280): 1.000000
Device Accel Velocity Scaling (281): 12.500000
Synaptics Edges (282): 127, 3061, 112, 1973
Synaptics Finger (283): 1, 1, 0
Synaptics Tap Time (284): 180
Synaptics Tap Move (285): 10
Synaptics Tap Durations (286): 180, 180, 100
Synaptics ClickPad (287): 1
Synaptics Middle Button Timeout (288): 0
Synaptics Two-Finger Pressure (289): 282
Synaptics Two-Finger Width (290): 7
Synaptics Scrolling Distance (291): 45, 45
Synaptics Edge Scrolling (292): 0, 0, 0
Synaptics Two-Finger Scrolling (293): 1, 1
Synaptics Move Speed (294): 1.000000, 1.750000, 0.052507, 0.000000
Synaptics Off (295): 0
Synaptics Locked Drags (296): 0
Synaptics Locked Drags Timeout (297): 5000
Synaptics Tap Action (298): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (299): 1, 3, 0
Synaptics Circular Scrolling (300): 0
Synaptics Circular Scrolling Distance (301): 0.100000
Synaptics Circular Scrolling Trigger (302): 0
Synaptics Circular Pad (303): 0
Synaptics Palm Detection (304): 0
Synaptics Palm Dimensions (305): 1000, 1000
Synaptics Coasting Speed (306): 20.000000, 50.000000
Synaptics Pressure Motion (307): 30, 160
Synaptics Pressure Motion Factor (308): 1.000000, 1.000000
Synaptics Resolution Detect (309): 1
Synaptics Grab Event Device (310): 1
Synaptics Gestures (311): 1
Synaptics Capabilities (312): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (313): 32, 32
Synaptics Area (314): 0, 0, 0, 0
Synaptics Soft Button Areas (315): 1594, 0, 1709, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (316): 0, 0
Device Product ID (271): 2, 14
Device Node (272): "/dev/input/event5"
Для справки, synclient
параметры:
$ synclient
Parameter settings:
LeftEdge = 127
RightEdge = 3061
TopEdge = 112
BottomEdge = 1973
FingerLow = 1
FingerHigh = 1
MaxTapTime = 180
MaxTapMove = 100
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 0
EmulateTwoFingerMinZ = 282
EmulateTwoFingerMinW = 7
VertScrollDelta = 45
HorizScrollDelta = 45
VertEdgeScroll = 0
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0525072
TouchpadOff = 0
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 = 1000
PalmMinZ = 1000
CoastingSpeed = 20
CoastingFriction = 50
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
ResolutionDetect = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
HorizHysteresis = 0
VertHysteresis = 0
ClickPad = 1
RightButtonAreaLeft = 1594
RightButtonAreaRight = 0
RightButtonAreaTop = 1709
RightButtonAreaBottom = 0
MiddleButtonAreaLeft = 0
MiddleButtonAreaRight = 0
MiddleButtonAreaTop = 0
MiddleButtonAreaBottom = 0
Моя Lenovo t540p показала те же признаки с ускоряющим профилем по умолчанию = 1 (зависимый от устройств).
Это, кажется, связано с ускорением указателя Xorg и имело отношение "ускоряющий профиль" . При установке ускоряющего профиля устройства на-1 (ни один) признак мертвой зоны, кажется, исчезает, хотя курсор мыши перемещает очень маленькие расстояния в дисплей, делая его очень точным, но довольно бесполезным.
я переключился на линейный ускоряющий профиль устройства (AccelerationProfile 6
) и видел непосредственное улучшение. Начальное колебание перемещения все еще там, но курсор не переходит, как это сделало ранее.
Дальнейшее исследование причины 'мертвой зоны' гарантировано, но это может произойти из-за микропрограммного поведения. synaptics страница справочника упоминает микропрограммное подавление шумов, которое может быть трудным или невозможным управлять в настоящее время:
Подавление шумов
synaptics имеет встроенное подавление шумов на основе гистерезиса. Это означает, что входящие координаты на самом деле смещают поле предопределенных размеров, таким образом, что оно покрывает входящую координату, и только поля, собственный центр используется в качестве входа. Очевидно, чем меньший поле, тем лучше, но вероятность шумового движения, проникающего также, увеличивается.
Вот является сценарием, который я использую для тонкой настройки настроек в моей системе:
#!/bin/bash
DEVICE="SynPS/2 Synaptics TouchPad"
xinput --set-prop "$DEVICE" "Device Accel Profile" 6
xinput --set-prop "$DEVICE" "Device Accel Constant Deceleration" 12
xinput --set-prop "$DEVICE" "Device Accel Velocity Scaling" 20
, Как только Вы находите настройки, которые Вы любите, можно принять решение добавить их к Вашему /etc/X11/xorg.conf.d/51-synaptics-quirks.conf
файл (скопированный от /usr/share/X11/xorg.conf.d
) или создать новое, разделить .conf файл там с именем как 99-your-config-file-name.conf
.
Option "AccelerationProfile" "6"
# May want to set "ConstantDeceleration" and "VelocityScale" or other
# values here as well
Я мог решить проблему для меня (ThinkPad T460s) путем выполнения:
$ synclient HorizHysteresis=0
$ synclient VertHysteresis=0
Используя synaptics программное обеспечение конфигурации synclient
.
Эти параметры были уже установлены на 0
в исходном вопросе @MichaelTingley, но в моем случае они были установлены на 28. Обнуление их устранило необходимость пошевелить пальцем немного, прежде чем мышь на самом деле переместится.
Эти настройки могут быть установлены постоянно путем добавления этого к Вашему /etc/X11/xorg.conf.d/70-synaptics.conf
:
Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
Option "HorizHysteresis" "0"
Option "VertHysteresis" "0"
EndSection
И благодаря полному ответу @Inactivist, который указал на меня в правильном направлении.