想要鼠标左右键都地图选择

Sco*_*owe 3 mouse touchpad multi-touch unity trackpad

在 Ubuntu 12.04 中,我的 Asus N56DP 将鼠标左右键映射为选择或鼠标左键。要获得右键单击或上下文菜单,我会使用两指单击。我很快就习惯了。

这一切都随着 12.10 及更高版本而改变。我现在在 Ubuntu 13.10 上。现在 lmb 是选择,而 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
Run Code Online (Sandbox Code Playgroud)

fal*_*ner 5

在终端:

xinput --list
Run Code Online (Sandbox Code Playgroud)

将输出如下内容:

? 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)]
Run Code Online (Sandbox Code Playgroud)

使用您想要更改的设备名称(例如,我将更改触摸板的按钮,因此我将使用"SynPS/2 Synaptics TouchPad")执行以下操作:

xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9 
Run Code Online (Sandbox Code Playgroud)

例如对我来说:

xinput set-button-map "SynPS/2 Synaptics TouchPad" 1 3 1 4 5 6 7 8 9
Run Code Online (Sandbox Code Playgroud)

(注意设备名称中的大小写,因为它很重要。)在此之后,您的左键和右键单击都被视为左键单击,而您的中键单击被视为右键单击。这只是暂时的,重新启动后更改将丢失。要使其永久化,只需/etc/lightdm/touchpad_setup使用以下内容制作文件:

#!/bin/bash
xinput set-button-map "YOUR_DEVICE" 1 3 1 4 5 6 7 8 9
exit 0
Run Code Online (Sandbox Code Playgroud)

并使其可执行:sudo chmod +x /etc/lightdm/touchpad_setup。之后编辑/etc/lightdm/lightdm.conf文件并在 [SeatDefaults] 部分下添加以下行:

session-setup-script=/etc/lightdm/touchpad_setup
Run Code Online (Sandbox Code Playgroud)

(如果您的文件中已经有一个会话设置脚本,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"
Run Code Online (Sandbox Code Playgroud)

或者更有可能

选项“TapButton2”“整数”

          Which mouse button is reported on a non-corner  two-finger  tap.
          Set to 0 to disable. Property: "Synaptics Tap Action"
Run Code Online (Sandbox Code Playgroud)

选项将解决您的问题。使用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.