В Ubuntu 12.04 мой Asus N56DP отображал правую и левую кнопки мыши для выбора или левую кнопку мыши. Чтобы получить щелчок правой кнопкой мыши или контекстное меню, я бы использовал щелчок двумя пальцами. Я быстро привык к этому.
Все изменилось с 12.10 и позже. Я сейчас на Ubuntu 13.10. Теперь lmb - это select, а rmb - контекстное меню.
Обратите внимание, что это одна из трекпадов с сенсорной панелью с двумя кнопками под ней. Но физически кнопки не разделены, они спрятаны под трекпадом. Теперь я ненавижу поведение правой / левой кнопки мыши. Без физических контекстных подсказок вы никогда не узнаете, на какую кнопку вы нажимаете.
Мне бы хотелось, чтобы старые функции 12.04 рассматривали это как однокнопочный трекпад назад, но не могу понять, как это сделать. Все исследования, которые я провел до сих пор, показывают, как изменить порядок кнопок на устройстве, а не как переназначить их таким образом, чтобы значения rmb и lmb были одинаковыми.
Напомним: я хочу, чтобы lmb и rmb инициировали выбор. Я хочу, чтобы щелкнуть двумя пальцами, чтобы открыть контекстное меню.
xinput --list
Virtual core pointer id=2 [master pointer (3)]
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
↳ ETPS/2 Elantech Touchpad id=14 [slave pointer (2)]
xinput --list-props "ETPS/2 Elantech Touchpad"
Device 'ETPS/2 Elantech Touchpad':
Device Enabled (144): 1
Coordinate Transformation Matrix (146): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (267): 1
Device Accel Constant Deceleration (268): 2.500000
Device Accel Adaptive Deceleration (269): 1.000000
Device Accel Velocity Scaling (270): 12.500000
Synaptics Edges (271): 136, 3284, 110, 1942
Synaptics Finger (272): 1, 1, 0
Synaptics Tap Time (273): 180
Synaptics Tap Move (274): 175
Synaptics Tap Durations (275): 180, 180, 100
Synaptics ClickPad (276): 1
Synaptics Middle Button Timeout (277): 0
Synaptics Two-Finger Pressure (278): 282
Synaptics Two-Finger Width (279): 7
Synaptics Scrolling Distance (280): 79, 79
Synaptics Edge Scrolling (281): 0, 0, 0
Synaptics Two-Finger Scrolling (282): 1, 1
Synaptics Move Speed (283): 1.000000, 1.750000, 0.050150, 0.000000
Synaptics Off (284): 0
Synaptics Locked Drags (285): 0
Synaptics Locked Drags Timeout (286): 5000
Synaptics Tap Action (287): 2, 3, 0, 0, 1, 3, 0
Synaptics Click Action (288): 1, 3, 0
Synaptics Circular Scrolling (289): 0
Synaptics Circular Scrolling Distance (290): 0.100000
Synaptics Circular Scrolling Trigger (291): 0
Synaptics Palm Detection (292): 0
Synaptics Palm Dimensions (293): 10, 200
Synaptics Coasting Speed (294): 20.000000, 50.000000
Synaptics Pressure Motion (295): 30, 160
Synaptics Pressure Motion Factor (296): 1.000000, 1.000000
Synaptics Resolution Detect (297): 1
Synaptics Grab Event Device (298): 1
Synaptics Gestures (299): 1
Synaptics Capabilities (300): 1, 0, 0, 1, 1, 1, 1
Synaptics Pad Resolution (301): 31, 31
Synaptics Area (302): 0, 0, 0, 0
Synaptics Soft Button Areas (303): 1710, 0, 1682, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (304): 19, 19
Device Product ID (260): 2, 14
Device Node (261): "/dev/input/event7"
synclient -l
Parameter settings:
LeftEdge = 136
RightEdge = 3284
TopEdge = 110
BottomEdge = 1942
FingerLow = 1
FingerHigh = 1
MaxTapTime = 180
MaxTapMove = 175
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
EmulateMidButtonTime = 0
EmulateTwoFingerMinZ = 282
EmulateTwoFingerMinW = 7
VertScrollDelta = 79
HorizScrollDelta = 79
VertEdgeScroll = 0
HorizEdgeScroll = 0
CornerCoasting = 0
VertTwoFingerScroll = 1
HorizTwoFingerScroll = 1
MinSpeed = 1
MaxSpeed = 1.75
AccelFactor = 0.0501505
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
PalmDetect = 0
PalmMinWidth = 10
PalmMinZ = 200
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 = 19
VertHysteresis = 19
ClickPad = 1
RightButtonAreaLeft = 1710
RightButtonAreaRight = 0
RightButtonAreaTop = 1682
RightButtonAreaBottom = 0
MiddleButtonAreaLeft = 0
MiddleButtonAreaRight = 0
MiddleButtonAreaTop = 0
MiddleButtonAreaBottom = 0
В терминале:
xinput --list
Выводит что-то вроде этого:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ Toshiba input device id=11 [slave keyboard (3)]
Используя имя устройства, которое вы хотите изменить (например, я буду менять кнопки моей сенсорной панели, поэтому я будет использовать "SynPS/2 Synaptics TouchPad"
) сделать это:
xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9
Например, для меня:
xinput set-button-map "SynPS/2 Synaptics TouchPad" 1 3 1 4 5 6 7 8 9
(Не упустите регистр в имени устройства, потому что это важно.) После этого и левый, и правый клики обрабатываются как левый, а средний щелчок - как правый. Это только временно, после перезагрузки изменения теряются. Чтобы сделать его постоянным, просто создайте файл /etc/lightdm/touchpad_setup
со следующим содержимым:
#!/bin/bash
xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9
exit 0
и сделайте его исполняемым: sudo chmod +x /etc/lightdm/touchpad_setup
. После этого отредактируйте файл /etc/lightdm/lightdm.conf
и добавьте в него следующую строку в разделе [SeatDefaults]:
session-setup-script=/etc/lightdm/touchpad_setup
(Если в вашем файле lightdm.conf
уже был скрипт-установки-сессии, то вы нужно будет добавить строку xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9
в файл, указанный в этих строках в lightdm.conf
.)
Обновление 1:
Также вы можете взглянуть на опции драйвера синапсов . Основываясь на том, что вы написали в комментариях, я думаю, изменив
опцию "ClickPad" "логическое"
Whether the device is a click pad. A click pad device has
button(s) integrated into the touchpad surface. The user must
press downward on the touchpad in order to generated a button
press. This property may be set automatically if a click pad
device is detected at initialization time. Property: "Synaptics
ClickPad"
или, более вероятно,
Опция «TapButton2» «integer»
Which mouse button is reported on a non-corner two-finger tap.
Set to 0 to disable. Property: "Synaptics Tap Action"
решит вашу проблему. Проверьте текущие настройки с помощью xinput --list-props "ETPS/2 Elantech Touchpad"
или synclient -l
. Затем измените настройки с помощью xinput
или synclient
, что вам больше нравится.
Обновление 2:
Итак, вы поняли это, и вам нужно было только отключить область программных кнопок для правой кнопки, установив для каждого параметра RightButtonArea * значение 0, с synclient RightButtonAreaLeft=0
, synclient RightButtonAreaTop=0
. (Поскольку другие уже были на 0.) Та же команда с xinput
будет xinput --set-prop "ETPS/2 Elantech Touchpad" "Synaptics Soft Button Areas" 0 0 0 0 0 0 0 0
.