Answers:
如果仅用于网络,则可以在FireFox中更改滚动速度:
Edit
菜单> Preferences
> Advanced
标签> Browsing
组:禁用平滑滚动微调:
about:config
在地址栏中输入Entermousewheel.withnokey.sysnumlines
为FALSEmousewheel.withnokey.numlines
1 更改为所需的值。还有一个更通用的系统范围的解决方案:
对于触摸板,某些驱动程序允许自定义滚动灵敏度,例如GPointingDeviceSettings(GSynaptics后继产品)。
对于鼠标,当前Gnome无法为用户提供调整鼠标滚轮速度的方法。这是一个已知的通缉功能,分为WishList。一种解决方案是使用一些技巧,或者真正深入研究混乱的配置文件,并可能进行一些重新编译。如果您需要调整该值,直到找到一个舒适的值,这不好玩。
只需拔下鼠标(我的鼠标是无线的),然后再将其重新插入即可解决此问题。
我一直在寻找此修复程序很长时间,甚至重新启动计算机也无济于事。
也许完全关闭将解决此问题。
铬轮平滑滚动条
在Chrome中,这是解决方案:https ://chrome.google.com/webstore/detail/chromium-wheel-smooth-scr/khpcanbeojalbkpgpmjpdkjnkfcgfkhb
太棒了!
我这里有Firefox 42.0,并且使用触摸板滚动。
我发现如果要调整滚动距离,可以进行以下更改:
mousewheel.default.delta_multiplier_y
在about:config
。默认值为100
。较大的值将滚动更远/更快。
如果在触摸板上使用两根手指滚动,则可以用于synclient
调整整个系统的灵敏度。
如果您没有安装它:
sudo apt-get install xserver-xorg-input-synaptics
要查看当前灵敏度阈值,请检查以下输出:
synclient -l | grep ScrollDelta
为了使其更敏感,请减小该值:
synclient VertScrollDelta=33
这意味着您需要减少手指移动来发送每个滚动事件。
如果要反转滚动方向(如Mac OS X的“自然滚动”),请设置一个负值。
但是请注意,这不能让您配置仅移动手指一点的最小滚动距离。必须按应用(或可能按桌面环境)进行配置。
即使拔出/插拔技巧确实解决了问题,这也不是一个很好的解决方案
我发现的一种解决方案是添加
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]
对于那些喜欢修复它的人Linux Desktop Way
。
关于如何Scroll Ratio
通过libinput源添加详尽的说明:
https://github.com/up-to-you/linux_notes/blob/master/mouse/scroll_speed.md
对于那些讨厌github
(gitlab
乐趣?)的人,请在此处复制(适用于任何鼠标):
查找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)
注销/登录,使用。