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)