如何使用中键滚动屏幕?

如何使用中键滚动屏幕?

在Windows 上,大多数具有大型可滚动文本容器的程序(例如所有浏览器、大多数文字处理程序和IDE)都允许您按鼠标中键,然后移动鼠标进行滚动。这种滚动非常平滑,并且允许您仅使用鼠标即可快速滚动。

当我使用 Linux 时笔记本电脑,两指滚动执行大致相同的功能;快速向下滚动页面很容易(比滚动鼠标滚轮快得多),但滚动仍然足够平滑以允许精确定位。

我不确定如何在使用鼠标在桌面上运行 Linux 时实现同样的效果。据我经过大量谷歌搜索后得知,既没有特定于应用程序的设置可以切换到 Windows 风格的鼠标中键行为,也没有任何系统范围的设置可以达到相同的效果。

为了具体说明这一点,假设 - 如果相关的话 - 我在 Firefox、Google Chrome、Gedit 和 Eclipse 的上下文中询问 Mint(我在家使用的)或 Ubuntu(我使用的)的最新版本在上班)。不过,我怀疑这是一个与发行版和应用程序无关的问题。

据我所知,我的滚动选项是:

  • 用鼠标滚轮滚动 - 慢!
  • 使用 PgUp / PgDn 键 - 一次跳跃很远的距离,因此无法用于精确定位,并且不如使用鼠标舒适
  • 上下拖动屏幕右侧的滚动条,就像我以前在带有两键鼠标的旧 Windows PC 上所做的那样。这就是我在实践中所做的,但它明显不如 Windows 风格的鼠标中键滚动舒服;在巨大的宽屏上,我需要花费大部分时间将光标从屏幕中间移至滚动条,然后再将其移回滚动条,并且我必须将视线从我要查看的内容上移开。实际上正在滚动执行此操作。

这些都不能让我满意!这个 UI 问题是影响我在桌面上享受 Linux 的唯一因素,几乎让我希望使用笔记本电脑触摸板而不是鼠标。这让我很恼火,我得出的结论是,要么我缺少一些解决这个问题的基本 Linux UI 功能,要么我只是一个过度敏感的怪胎,它甚至不会打扰其他人 - 但我不确定是哪一个。

所以我的问题是:

  1. Windows 风格的鼠标中键滚动是否存在于 Linux 世界的任何地方,或者它真的纯粹是 Windows 的东西?特别是,是否有 Linux Web 浏览器允许您使用 Windows 风格的滚动?
  2. 是否存在 Linux 中存在但 Windows 中不存在的滚动页面机制,尤其是执行我所描述的角色的机制?
  3. 我还缺少其他解决方案吗?

答案1

您所说的功能称为“自动滚动”。它允许您按住鼠标中键并移动鼠标以平滑滚动。在 Linux 中,此操作(按鼠标中键)的默认行为通常是粘贴文本。

但是,Firefox 中有一个首选项设置,并且 Chrome/Chromium 提供了一个扩展程序,可以让您使用鼠标中键进行滚动并激活此功能。

火狐浏览器

  • 打开“选项”选项卡:“≡”(打开菜单)→“选项”。

  • 导航到“常规”(默认情况下应打开“常规”)。

  • 向下滚动到“浏览”。在“浏览”下,您将找到“使用自动滚动”选项。在此旁边勾选复选标记以在 Firefox 中激活此功能。

    或者只需使用搜索栏搜索“自动滚动”。

突出显示自动滚动的 Firefox 首选项选项卡

    在旧版本的 Firefox 中:“编辑”→“首选项”→“高级”→“常规”→“浏览”→“用户自动滚动”。单击下面查看更大的图像。

        旧版 Firefox 中的用户自动滚动选项

铬/铬

对于 Chrome/Chromium,我们可以使用名为“AutoScroll”的扩展(来自 kaescripts.blogspot.com)。

  • Chrome 网上应用店中的此链接(显然使用 Chrome/Chromium)。

  • 单击标有“+ ADD TO CHROME”的按钮来安装此扩展。

    Chrome 扩展程序

  • 在确认对话框中单击“添加”。

电子应用程序

在某些 Electron 应用程序(例如 Visual Studio Code、Spotify 和 Discord)中,您可以添加--enable-blink-features=MiddleClickAutoscroll到启动参数。根据程序是否运行支持它的 Electron 版本,将启用自动滚动。

其他应用

至于其他应用程序,我还没有找到解决方案。不管怎样,大部分问题都是由高网页造成的,而 Firefox 和 Chrome/Chromium 都有解决方案。

答案2

这将适用于您的所有应用程序,无需安装任何东西。

获取您的输入设备ID。就我而言,是 11。

xinput list

如果需要,请列出可用属性xinput list-props <deviceID>。如果您使用 libinput (未来/现在),几乎所有属性都将以库输入。为了evdev查看我的回答在这里

libinput

设置鼠标属性

xinput set-prop 11 "libinput Scroll Method Enabled" 0, 0, 1  # This is button
xinput set-prop 11 "libinput Button Scrolling Button" 2      # This is middle mouse. Already 2 by default

描述来自man libinput

  • libinput 滚动方法启用3 个布尔值(8 位,0 或 1),依次为“两指”、“边缘”、“按钮”。指示该设备当前启用哪种滚动方法。
  • libinput 按钮 滚动按钮1 个 32 位值。设置用于按钮滚动的按钮编号。此设置与滚动方法无关,要启用按钮滚动,必须将方法设置为按钮滚动,并且必须设置有效的按钮。

  • 你可以添加这个到 shell 脚本并在登录时运行它。
  • 与鼠标滚轮一样,按下时进行相同的移动Ctrl将放大/缩小页面。Ctrl + 0重置。
  • 这项工作与 X 和可能与韦兰

答案3

尝试一下:Firefox 中的自动滚动功能

firefox > preferences > search auto scroll and enable it

在 vanilla ubuntu 附带的 Firefox 中,如果您想进一步调整鼠标设置(如下面的控制面板所示),有时它会被禁用安装 gnome 调整工具

sudo apt-get 安装 gnome-tweak-tool 在此输入图像描述

第二个选择:

  • 通过更改鼠标中键行为x输入
  • 输入以下代码来探测输入设备和外围设备

x输入列表

  • 你应该得到类似的显示,如下所示: 在此输入图像描述
  • 现在我的鼠标是9
  • 现在在终端中写下这个

xinput set-prop 9 "libinput 滚动方法启用" 0, 0, 1

  • 现在检查当您按下中键并在任何具有垂直滚动[大文本/文档]的应用程序中向上或向下移动时鼠标的行为。

答案4

决定自动化 Pablo A 的答案,因为我发现它是最好的(因为它适用于所有应用程序,而不仅仅是 Firefox)。

将此文件保存为脚本(例如:~/setup_middle_click_scrolling.sh),使用 使其可执行chmod +x,然后运行它(运行后可以将其删除)。它支持中键单击滚动,还添加了启动脚本,以便您每次登录时都能获得该功能。

#!/bin/bash
# Enables middle click to scroll (like Windows).
set -e

: ${SCRIPT_PATH:=~/.config/autostart/middle_click_to_scroll.sh}
: ${DESKTOP_PATH:=~/.config/autostart/middle_click_to_scroll.desktop}

# Create dirs if they don't exist.
echo "$SCRIPT_PATH" "$DESKTOP_PATH" | xargs dirname | xargs mkdir -p

# Create a script that can be run on-demand.
# When run, it enables middle-click to scroll.
cat > "$SCRIPT_PATH" << EOF
#!/bin/bash

# Get device IDs of all devices containing "pointer"
pointer_ids=(\$(xinput list | grep pointer | perl -p -e 's@.*?id=(\d+).*@\1@'))

for pointer_id in "\${pointer_ids[@]}"; do
  # If the pointer supports scroll method, set middle click to scroll
  if xinput list-props "\$pointer_id" | grep 'Scroll Method Enabled' &>/dev/null; then
    xinput set-prop "\$pointer_id" 'libinput Scroll Method Enabled' 0 0 1
  fi
done
EOF
chmod +x "$SCRIPT_PATH"

# Create a desktop entry so it runs on startup.
cat > "$DESKTOP_PATH" << EOF
[Desktop Entry]
Type=Application
Name=Middle click to scroll
Exec="$SCRIPT_PATH"
X-GNOME-Autostart-Phase=Initialization
Terminal=false
NoDisplay=true
EOF

"$SCRIPT_PATH"

希望评论中的人们能够指出这是否适用于所有系统,但它适用于我的XFCE+ libinput+ 标准 3 键鼠标的设置。

相关内容