Gil*_*il' 33
这个 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)]
Run Code Online (Sandbox Code Playgroud)
例如,在上面的输出中,指针设备是Generic USB mouse
。您可以运行以下命令来列出可以调整的属性:
xinput --list-props 'Generic USB Mouse'
Run Code Online (Sandbox Code Playgroud)
您正在寻找的一组属性是“Evdev Wheel Emulation”。使用以下设置,当按下鼠标中键(按钮 2)时,移动鼠标会发送滚轮事件(4=up, 5=down, 6=left, 7=right)。
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
Run Code Online (Sandbox Code Playgroud)
您可能想要调整其他参数(惯性、超时)。
您可以将这些命令放在脚本中。添加#!/bin/sh
作为第一行,并使脚本文件可执行(例如chmod +x ~/bin/activate-wheel-emulation.sh
)。然后将该脚本添加到会话开始时要运行的命令列表中(gnome-session-properties
让您对其进行配置)。
如果您具有 root 访问权限并且希望对所有用户进行更改(在家用计算机上可接受),那么通过X.org 服务器配置文件来进行更改会更简单。以 root/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
Run Code Online (Sandbox Code Playgroud)