在Windows中,我习惯单击中心按钮,它提供了向上或向下的“快速滚动”选项。如何在Linux上获得这种行为?当前似乎在单击中心时使用了后退按钮。
我在CentOS下使用Gnome。
在Windows中,我习惯单击中心按钮,它提供了向上或向下的“快速滚动”选项。如何在Linux上获得这种行为?当前似乎在单击中心时使用了后退按钮。
我在CentOS下使用Gnome。
Answers:
Windows功能从未真正进入Unix世界。在Unix世界中,鼠标中键的主要目的是粘贴剪贴板内容(或更准确地说,是使用鼠标选择的文本,它是自动复制的)。Firefox和Chrome等跨平台应用程序在Windows下均支持Linux样式的鼠标中键,反之亦然,但除此之外,大多数应用程序均不支持这种细粒度的滚动。
但是,您可以在系统级别上相当接近。可以设置鼠标按钮,以便在按下鼠标按钮时将鼠标移动转换为滚轮事件。该功能与您以前使用过的功能相同,但是您可能会发现运动不稳定,因为应用程序接收到转轮事件,通常将其解释为滚动整行或整列。
要使用此配置,请使用xinput程序(我不知道是否有GUI前端)。首先,运行以下命令以查看定位设备的名称:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Generic USB Mouse id=8 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ USB Keyboard id=9 [slave keyboard (3)]
例如,在上面的输出中,指针设备为Generic USB mouse
。您可以运行以下命令来列出可以调整的属性:
xinput --list-props 'Generic USB Mouse'
您要查找的属性集是“ Evdev Wheel Emulation”。使用以下设置,当按下鼠标中键(按钮2)时,移动鼠标会发送滚轮事件(4 =向上,5 =向下,6 =向左,7 =向右)。
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5
您可能需要调整其他参数(惯性,超时)。
您可以将这些命令放在脚本中。#!/bin/sh
作为第一行添加,并使脚本文件可执行(例如chmod +x ~/bin/activate-wheel-emulation.sh
)。然后将该脚本添加到会话启动时要运行的命令列表中(gnome-session-properties
让您对其进行配置)。
如果您具有root用户访问权限,并且想对所有用户进行更改(在家用计算机上可以接受),则可以通过X.org服务器配置文件进行更改。以超级用户/etc/X11/xorg.conf.d/wheel-emulation.conf
身份创建一个名为的文件,其中包含鼠标驱动程序的设置。设置相同,但组织方式略有不同。
Section "InputClass"
Identifier "Wheel Emulation"
MatchProduct "Generic USB Mouse"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
Evdev Wheel Emulation Timeout
太多参数,则可能完全失去鼠标中键(单击)的功能。例如,如果减小Evdev Wheel Emulation Timeout
到低于的值,Evdev Middle Button Timeout
则将不再生成“中间按钮单击”事件。从个人经验来看,以下内容似乎相当有效:
xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1
。xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50
。xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100
。这提供了相当灵活的单击和滚动功能,尽管如果您发现它触发得太快,则尝试增加Evdev Wheel Emulation Timeout
(我认为默认
Device "evdev"
在的"EmulateWheelButton"
值周围添加和放置双引号来工作"2"
。(抱歉,我没有时间研究这些更改中的一个还是两个是否都解决了问题。)
Device "evdev"
道理,您是说Driver "evdev"
吗?我认为这可以代替MatchProduct
为所有输入设备设置选项的指令,而不仅仅是通用USB鼠标。
Pointer_EnableKeys
(在Google上输入它或在此处询问新问题),并且可以使用XKB设置更奇特的行为(搜索键盘) :鼠标键,或在此处提出一个新问题,以确切描述您想要的东西,以及如果无法完全满足您将要解决的东西)。