提高滚动速度


39

我最近改用Ubuntu,困扰我的一件事是滚动速度,我似乎无法改变。在Windows中,我曾经将其设置为大约7行,但在Ubuntu上似乎为3行,并且不可更改。如何更改速度?

Answers:


26

如果仅用于网络,则可以在FireFox中更改滚动速度:

  • Edit菜单> Preferences> Advanced标签> Browsing组:禁用平滑滚动

微调:

  • about:config在地址栏中输入Enter
  • 查找并更改mousewheel.withnokey.sysnumlines为FALSE
  • 然后将mousewheel.withnokey.numlines1 更改为所需的值。

还有一个更通用的系统范围的解决方案:


3
对于整个系统。
Kironide

5
只需拔下并再次插入鼠标连接器。它为我工作。
Airton Sobral

3
是。它也对我有用。我正在使用无线鼠标。首先,我尝试关闭和打开鼠标电源,但这并没有帮助。然后我拔下了USB适配器,等待了几秒钟,然后再次插入。

1
@AirtonSobral太奇怪了!对我也很有效,除了我的滚轮会跳满整个页面长度(太快)。现在很顺利!:)
Web_Designer

1
这个答案是最新的吗?
阿洪(Ahorn)

26

只需拔下鼠标(我的鼠标是无线的),然后再将其重新插入即可解决此问题。

我一直在寻找此修复程序很长时间,甚至重新启动计算机也无济于事。

也许完全关闭将解决此问题。


2
这也为我工作。我必须在每次启动时都这样做,这有点烦人,但是,哦,至少它能起作用。
陶Szelei

2
完全关机对我而言不起作用,但是拔下并重新插拔确实有效!我希望我不必在每个重新启动周期都这样做。
TechplexEngineer 2012年

4
哇,这对我来说也非常有用,因为它的滚动速度太快了。我拔下了蓝牙加密狗,然后重新插入,滚动变得很完美。如此简单的解决方法令人惊讶。
格里

当然,没有办法在一生中完全表达我的感激之情,所以我只想说谢谢您,它确实有效。
AndreasT 2013年

找到了完美的解决方案。不再需要拔下插头。使用resetmsmiceUbuntu软件包
Ted Feng

15

对于Ubuntu 12.10,我发现它与Firefox的解决方案有点不同。

打开about:config(将其输入到地址栏中)并搜索:

mousewheel.min_line_scroll_amount

然后更改与其关联的数字。我的设置为5。我将其更改为60,并且现在可以按我想要的方式工作。


1
谢谢!我自己找到了该选项,但并没有尝试使用那么高的数字,例如10。但是,与平滑滚动一起,似乎更高的数字是为了勉强达到足够的滚动速度。目前有我设置为100
nem75

5

在Firefox 19中,about:config在地址栏中运行,然后将参数修改为mousewheel.min_line_scroll_amount更高的值(50)。您不必重新启动FF。


2

铬轮平滑滚动条

在Chrome中,这是解决方案:https ://chrome.google.com/webstore/detail/chromium-wheel-smooth-scr/khpcanbeojalbkpgpmjpdkjnkfcgfkhb

太棒了!


2
我用它来解决我的问题,对我来说很好。
Zzzach ...

2

我这里有Firefox 42.0,并且使用触摸板滚动。

我发现如果要调整滚动距离,可以进行以下更改:

mousewheel.default.delta_multiplier_y

about:config。默认值为100。较大的值将滚动更远/更快。


1

如果在触摸板上使用两根手指滚动,则可以用于synclient调整整个系统的灵敏度。

如果您没有安装它:

sudo apt-get install xserver-xorg-input-synaptics

要查看当前灵敏度阈值,请检查以下输出:

synclient -l | grep ScrollDelta

为了使其更敏感,请减小该值:

synclient VertScrollDelta=33

这意味着您需要减少手指移动来发送每个滚动事件。

如果要反转滚动方向(如Mac OS X的“自然滚动”),请设置一个负值。

但是请注意,这不能让您配置仅移动手指一点的最小滚动距离。必须按应用(或可能按桌面环境)进行配置。


仅在Synaptic设备上-不适用于ALPS或其他任何触摸板制造商。
Wyatt8740 '16

0

即使拔出/插拔技巧确实解决了问题,这也不是一个很好的解决方案

我发现的一种解决方案是添加

xinput set-prop 10 'Evdev Scrolling Distance' 10 10 10

.profile文件末尾(或每次图形登录执行一次的位置)

对于我的Microsoft鼠标,默认值1 1 1过于敏感。

10 10 10 对我来说是正确的。

我没有花时间去看每个数字的实际含义


紧随其后的数字set-prop是设备ID(我相信。)您可以使用xinput列表进行检查。您会看到设备ID按顺序列出。通过xinput list-props [id]
emf

这是Evdev参数的含义:unix.stackexchange.com/a/442666
Sam

0

对于那些喜欢修复它的人Linux Desktop Way

关于如何Scroll Ratio通过libinput源添加详尽的说明:

https://github.com/up-to-you/linux_notes/blob/master/mouse/scroll_speed.md

对于那些讨厌githubgitlab乐趣?)的人,请在此处复制(适用于任何鼠标):

查找libinput文件

sudo updatedb
ll $(locate -A libinput.so)

Canonical最有可能提供带有快照的libinput库

sudo snap list
sudo snap remove gnome-3-28-1804

检查,libinput仅保留在系统文件夹中,例如: /usr/lib/x86_64-linux-gnu/libinput.so /usr/lib/x86_64-linux-gnu/libinput.so.10 /usr/lib/x86_64-linux-gnu/libinput.so.10.13.0

ll $(locate -A libinput.so)

克隆libinput源

git clone https://gitlab.freedesktop.org/libinput/libinput
cd libinput

修改src/evdev.c。查找evdev_read_wheel_click_props函数和初始化angles.y = 361;

static inline struct wheel_angle
evdev_read_wheel_click_props(struct evdev_device *device)
{
    struct wheel_angle angles;
    const char *wheel_count = "MOUSE_WHEEL_CLICK_COUNT";
    const char *wheel_angle = "MOUSE_WHEEL_CLICK_ANGLE";
    const char *hwheel_count = "MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL";
    const char *hwheel_angle = "MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL";

    /* CLICK_COUNT overrides CLICK_ANGLE */
    if (evdev_read_wheel_click_count_prop(device, wheel_count, &angles.y) ||
        evdev_read_wheel_click_prop(device, wheel_angle, &angles.y)) {
        evdev_log_debug(device,
                "wheel: vert click angle: %.2f\n", angles.y);
    }
    if (evdev_read_wheel_click_count_prop(device, hwheel_count, &angles.x) ||
        evdev_read_wheel_click_prop(device, hwheel_angle, &angles.x)) {
        evdev_log_debug(device,
                "wheel: horizontal click angle: %.2f\n", angles.y);
    } else {
        angles.x = angles.y;
    }
    // since, src/util-prop-parsers.c : abs(angle) > 360
    angles.y = 361;

    return angles;
}

修改src/libinput.c。查找libinput_event_pointer_get_axis_value_discrete功能并根据需要应用滚动比例:

LIBINPUT_EXPORT double
libinput_event_pointer_get_axis_value_discrete(struct libinput_event_pointer *event,
                           enum libinput_pointer_axis axis)
{
    struct libinput *libinput = event->base.device->seat->libinput;
    double value = 0;

    require_event_type(libinput_event_get_context(&event->base),
               event->base.type,
               0.0,
               LIBINPUT_EVENT_POINTER_AXIS);

    if (!libinput_event_pointer_has_axis(event, axis)) {
        log_bug_client(libinput, "value requested for unset axis\n");
    } else {
        switch (axis) {
        case LIBINPUT_POINTER_AXIS_SCROLL_HORIZONTAL:
      // x5 ratio for horizontal scrolling
            value = event->discrete.x * 5;
            break;
        case LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL:
      // x5 ratio for vertical scrolling
            value = event->discrete.y * 5;
            break;
        }
    }
    return value;
}

准备构建目录(需要安装依赖项):

meson --prefix=/usr builddir/ -Ddocumentation=false

编译安装:

ninja -C builddir/ && sudo ninja -C builddir/ install

验证位置:

sudo updatedb
ll $(locate -A libinput.so)

注销/登录,使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.