按住中键时使鼠标移动滚动

按住中键时使鼠标移动滚动

在 Windows 中,我习惯于单击中心按钮,它提供向上或向下“快速滚动”选项。我怎样才能在 Linux 上得到这种行为?目前似乎在中心单击时使用后退按钮。

我在 CentOS 下使用 Gnome。

答案1

Windows 的这项功能从未真正进入 Unix 世界。在 Unix 世界中,鼠标中键的主要用途是粘贴剪贴板内容(或更准确地说,是用鼠标选择的文本,它是自动复制的)。一些跨平台应用程序(例如 Firefox 和 Chrome)在 Windows 下支持 Linux 风格的鼠标中键,反之亦然,但除此之外,大多数应用程序不支持这种细粒度的滚动。

尽管如此,您可以在系统级别相当接近。可以设置一个鼠标按钮,当按下该按钮时,鼠标移动将转换为滚轮事件。这与您习惯的功能相同,但您可能会发现运动不稳定,因为应用程序接收滚轮事件,这些事件通常被解释为滚动一整行或一列。

要使用此配置,请使用x输入程序(我不知道是否有 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 服务器配置文件。以 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

答案2

事实证明这可以通过 Firefox 偏好设置来完成。

  1. 从下拉菜单中:编辑 --> 首选项
  2. 然后选择选项卡:高级 --> 常规
  3. 然后勾选“使用自动滚动”

截屏

   SS

答案3

这对我有用,Ubuntu 20.04/20.10:注意,它在任何地方、每个应用程序中都适用。如何在 Wayland 中执行此操作,我不知道,尽管它正在操纵 libinput,所以它应该是可能的。

该答案只是已接受答案的一个示例。

#/usr/share/X11/xorg.conf.d/41-libinput.conf
Section "InputClass"
        Identifier "Logitech USB Receiver Mouse"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ScrollButton" "2"
        Option "ScrollMethod" "button"
        Option "NaturalScrolling" "true"
EndSection

答案4

因为chrome您可以使用此扩展进行自动滚动

自动滚屏

安装扩展后不要忘记重新启动 chrome

相关内容