在 Java 应用程序中将水平滚动视为右键单击

JLi*_*den 14 touchpad java

我在 Ubuntu 11.04 中为我的触摸板启用了水平滚动,但是当在 Java 应用程序(在我的例子中是 NetBeans)中使用它时,它是右键单击。

水平滚动在所有不是用 Java 编写的应用程序中都能完美运行。

我该怎么做才能使其正常工作?

NoB*_*ugs 4

就是这个bug。您可以按照此处所述通过运行来修复它synclient HorizTwoFingerScroll=0(两个手指滚动仍然可以正常工作)。

您可以使用“启动应用程序”对话框在启动时添加命令。


fos*_*dom 2

UbuntuForums上讨论了可能的解决方法- 您可以手动运行脚本来启用或禁用右键单击,具体取决于您是否使用基于 JAVA 的应用程序。

例如,您可以将每个脚本连接为键盘快捷键,例如CTRL+ ALT+E启用,CTRL++禁用ALTR

创建一个名为“hscroll_disable”的脚本,其中包含:

DEVICE_NAME='TPPS/2 IBM TrackPoint'
PROP_NAME='Evdev Wheel Emulation Axes'

xinput set-int-prop "$DEVICE_NAME" "$PROP_NAME" 8 4 5 4 5
if [[ $? -eq 0 ]] ; then
  zenity --info --text "Horizontal Scrolling Disabled"
else
  zenity --error --text "Error disabling horizontal scroll."
fi
Run Code Online (Sandbox Code Playgroud)

创建一个名为“hscroll_disable”的脚本,其中包含:

DEVICE_NAME='TPPS/2 IBM TrackPoint'
PROP_NAME='Evdev Wheel Emulation Axes'

xinput set-int-prop "$DEVICE_NAME" "$PROP_NAME" 8 6 7 4 5
if [[ $? -eq 0 ]] ; then
  zenity --info --text "Horizontal Scrolling Enabled"
else
  zenity --error --text "Error enabling horizontal scroll."
fi
Run Code Online (Sandbox Code Playgroud)

授予两个脚本执行权限,即

chmod +x hscroll_disable
chmod +x hscroll_enable
Run Code Online (Sandbox Code Playgroud)

脚本的两个重要部分是“DEVICE_NAME”和“PROP_NAME”

您可以像这样找出系统上要使用的设备名称:

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

这将给出类似于以下内容的输出:

"Virtual core pointer"  id=0    [XPointer]
"Virtual core keyboard" id=1    [XKeyboard]
"ThinkPad Extra Buttons"        id=2    [XExtensionKeyboard]
"AT Translated Set 2 keyboard"  id=3    [XExtensionKeyboard]
"Video Bus"     id=4    [XExtensionKeyboard]
"Macintosh mouse button emulation"      id=5    [XExtensionPointer]
"TPPS/2 IBM TrackPoint" id=6    [XExtensionPointer]
Run Code Online (Sandbox Code Playgroud)

然后查找属性名称:

xinput list-props "TPPS/2 IBM TrackPoint"
Run Code Online (Sandbox Code Playgroud)

这将给出类似于以下内容的输出:

Device 'TPPS/2 IBM TrackPoint':
        Device Enabled (93):            1
        Evdev Axis Inversion (230):             0, 0
        Evdev Reopen Attempts (227):            10
        Evdev Axis Calibration (228):           
        Evdev Axes Swap (229):          0
        Evdev Middle Button Emulation (231):            1
        Evdev Middle Button Timeout (232):              50
        Evdev Wheel Emulation (233):            1
        Evdev Wheel Emulation Axes (234):               6, 7, 4, 5
        Evdev Wheel Emulation Inertia (235):            10
        Evdev Wheel Emulation Timeout (236):            200
        Evdev Wheel Emulation Button (237):             2
        Evdev Drag Lock Buttons (238):          0
Run Code Online (Sandbox Code Playgroud)

上面的解决方案转载自“vace117”