使用触摸板时 IMWheel 会产生抖动滚动

使用触摸板时 IMWheel 会产生抖动滚动

Linux 中的鼠标滚动性能很差,并且没有内置方法来控制鼠标滚动性能。因此,我做了一些挖掘并发现了IMWheel。我按照这个教程如何在 Linux 中调整或提高鼠标滚轮速度并将鼠标滚动速度设置为 5。

这似乎修复了我的物理鼠标滚动速度。然而,使用笔记本电脑的触摸板进行滚动并不是完美的。页面似乎行为不稳定,每次滚动一定量的页面时都会跳转,非常令人不快。禁用 IMWheel 后,触摸板行为似乎恢复正常。

有没有什么方法可以让物理鼠标拥有不错的滚动速度,同时保持 Linux 中触摸板现有的滚动体验?就像 Windows 中那样吗?如果有,请指导我如何解决这个问题。

这个问题确实让我根本无法使用 Linux!

下面是我当前的鼠标和触摸板设置:

当前鼠标设置: 当前鼠标设置

当前触摸板设置: 当前触摸板设置

硬件和软件详细信息:

  • 操作系统:Linux Mint Cinnamon 19.1
  • 笔记本电脑:HP AB032TX(双启动:Windows 10 和 Linux Mint)
  • 有问题的软件:IM轮
  • 触摸板驱动程序:Synaptics(Mint 附带的默认驱动程序)
  • 物理鼠标:罗​​技普通光电鼠标

答案1

好吧,我在 ubuntu 20.10 中解决同样问题的方法是在 ubuntu 中设置键盘快捷键。使用 gnome 的自定义键盘快捷键,您可以通过它运行任何命令。所以要启动 imwheel 你输入

imwheel

并停止 imwheel 你输入

killall imwheel

就是这样,您可以通过像这样分配键盘快捷键来运行这些命令在此输入图像描述

我用的是F1启动,F2停止imwheel,大家可以自己选择!希望能帮助到你!

答案2

我们可以执行以下操作,以在插入鼠标时启动 imwheel,并在拔出鼠标时停止。

我使用的是 Fedora 33,但类似的解决方案应该适用于其他发行版。

此方法假设您的计算机上正在运行 imwheel 服务。

$HOME/xinputwatcher.sh(记住 chmod +x 这个文件)

#!/bin/bash
while true
do
  if [[ $(xinput list --name-only | grep 'Logitech USB-PS/2 Optical Mouse') ]];
  then
    if [[ $(systemctl --user is-active imwheel) == inactive ]];
    then
      systemctl --user start --now imwheel
      echo "starting imwheel"
    else
      echo "imwheel already running"
    fi
  else
    if [[ $(systemctl --user is-active imwheel) == active ]];
    then
      systemctl --user stop --now imwheel
      echo "stopping imwheel"
    else
      echo "imwheel already stopped"
    fi
  fi
  sleep 3
done
  • 请注意,您应该将“逻辑..鼠标”字符串替换为您的鼠标名称(键入xinput以获取设备列表)。
  • 如果您有多个鼠标,那么您需要添加一个elseif块。
  • 注意sleep命令;如果我们拔掉鼠标,它应该会在 3 秒内生效。
  • 继续通过运行来测试该脚本./xinputwatcher.sh。当您插入鼠标时,它应该启动 imwheel,当您拔下鼠标时,它应该停止 imwheel。

现在创建在系统启动时自动运行该脚本的服务。

$HOME/.config/systemd/user/xinputwatcher.service

[Unit]
Description=xinputwatcher

[Service]
Type=simple
ExecStart=$HOME/xinputwatcher.sh
KillMode=process

[Install]
WantedBy=graphical-session.target

最后,启用该服务,以便它在重新启动时自动启动。

systemctl --user daemon-reload
systemctl --user enable xinputwatcher.service

相关内容