是否可以通过某种方式配置突触惯性滚动,以便在按下键盘上的任何键时都可以中断突触惯性滚动?
解释这个问题:我经常使用快捷方式。现在,例如,当我浏览Web并使用惯性滚动滚动回到网站顶部时,如果尝试使用Ctrl+ 打开新标签页,T由于浏览器仅检测到Ctrl+ ,我会疯狂地缩放网站scrolling。
这在许多应用程序中都会发生,并且确实很烦人。我曾经喜欢惯性滚动,但是只要这个问题仍然存在,就必须禁用它。
是否可以通过某种方式配置突触惯性滚动,以便在按下键盘上的任何键时都可以中断突触惯性滚动?
解释这个问题:我经常使用快捷方式。现在,例如,当我浏览Web并使用惯性滚动滚动回到网站顶部时,如果尝试使用Ctrl+ 打开新标签页,T由于浏览器仅检测到Ctrl+ ,我会疯狂地缩放网站scrolling。
这在许多应用程序中都会发生,并且确实很烦人。我曾经喜欢惯性滚动,但是只要这个问题仍然存在,就必须禁用它。
Answers:
恐怕这已经在Xorg上进行了讨论,并被标记为“已解决”,但是由于Xorg在您按下时Ctrl仍无法意识到,并且惯性滚动仍然存在,因此无法解决。(请参阅Peter Hutterer的评论及其与的类比Ctrl)。
因此,至少要等到有了Unity 8(将Xorg替换为Mir并希望将其真正解决)后,我们才可以解决问题,而不能完美解决或完全禁用惯性滚动。
我建议的修复措施之一是在应用程序本身中禁用Ctrl+ scrolling功能。这肯定是一个不干净的解决方案,因为问题仍然存在,但是只有效果消除了,您必须对最经常使用惯性滚动的任何应用程序执行此操作。
要在Firefox中禁用Ctrl+ scrolling功能,请about:config
在地址栏中键入内容,然后单击“我会保证,我保证!” 现在,在搜索栏中,键入 mousewheel.with_control.action
并双击第一个结果,并将其值设置为1
,这只会滚动内容而不是缩放。您可以将其值设置为具有相应效果的以下值:
如果能够找到更干净,更好的解决方案,我将更新答案。
角落滑行有帮助!虽然不是真正的解决方案,但我发现使用Synaptics驱动程序的CornerCoasting
模式而不是正常的(无指)惯性滚动模式会有所帮助。原因:拐角滑行模式在手指保持在拐角时处于活动状态,并在释放手指时立即停止。虽然Ctrl在转角惯性滑行过程中按下该按钮仍会产生您描述的“ Firefox缩放疯狂”问题,但是当我积极参与某个动作(即用手指放在触摸板上而不是无指惯性滑行)时,我很难做到这一点。
尝试转角滑行。以下命令将设置转角滑行模式:
synclient VertEdgeScroll=1 CornerCoasting=1 CoastingSpeed=1 CoastingFriction=0
VertEdgeScroll=1
这是因为拐角滑行仅适用于边缘滚动,不适用于两指滚动。如果您喜欢在右边缘和下边缘都进行角滑行,请添加HorizEdgeScroll=1
到上面的行。CornerCoasting=1
启用转角滑行模式。CoastingSpeed
是滑行期间滚动的最小速度,但这似乎也是触发它的最小光标速度。因此,我将其设置为最小值以使其最容易触发该模式,否则这可能会很棘手(而对于而言则不可能CoastingSpeed=100
)。CoastingFriction
是使惯性滚动淡出的值。我们在这里禁用它,以使其一直持续到您抬起手指为止,这与通常在手指滑行惯性滑行中通常需要的操作有所不同。有关这些选项的更多详细信息,请参见Synaptics联机帮助页。
联机帮助页中未提及的内容:似乎可以通过从非拐角边缘区域滑动到拐角区域,然后将手指保持在此处来进行拐角滑行。因此,如果您不小心抬起手指,甚至在很短的时间内通过撞到触摸板边缘或在触摸板边缘上方,都将停止滑行运动。“移至拐角区域”触发模式还意味着,如果您TopEdge
和BottomEdge
参数在边缘几乎没有或没有非角区域。这些在这里是相关的,因为拐角区域由边缘区域的交点定义。同样,如果没有合适大小的右边缘区域,触发角滑行也将很难甚至不可能。对于我的硬件(ThinkPad X201),我发现这些值可以很好地工作(您可能有所不同,需要进行一些试验):
synclient RightEdge=4800 TopEdge=2000 BottomEdge=4000
制作拐角滑行棒。虽然synclient
非常适合立即测试设置,但重新启动X时它们会丢失。要使其坚持下去,请按此处所述创建一个/etc/X11/xorg.conf.d/51-synaptics-cornercoasting.conf
或类似名称的配置文件(在Ubuntu中也可以使用!)。对于上述情况,内容为:
Section "InputClass"
Identifier "Touchpad tweaks"
Driver "synaptics"
MatchIsTouchpad "on"
Option "VertEdgeScroll" "on"
# Option "HorizEdgeScroll" "on" # Enable if you want this.
Option "CornerCoasting" "on"
Option "CoastingSpeed" "1"
Option "CoastingFriction" "0"
Option "RightEdge" "4800"
Option "TopEdge" "2000"
Option "BottomEdge" "4000"
EndSection
当然,然后重新启动X以查看效果。
可能的替代品。如果由于该bug太烦人而要完全禁用惯性滚动,则有一些可能的替代方法(不完全是惯性滚动,而是可以使用类似的轻松滚动模式):
系统范围:
灵敏的Trackpoint按钮滚动。这将使用ThinkPad跟踪点(但可以为其他跟踪点修改),同时按下中间鼠标按钮进行滚动。在驱动程序中称为“ 按按钮滚动 ”,libinput
在较旧的evdev
驱动程序中称为“ 鼠标轮仿真” 。
这里的想法是,您将其设置得如此敏感,以至于一点点恒定的压力将快速滚动浏览较长的页面。要对此进行配置,请参考此问题,尤其是。@htorque的答案最适合libinput
驱动程序(Ubuntu 17.10的默认设置)。
专门针对Firefox:
Grab and Drag扩展名。这提供了一种惯性投掷/惯性拖动模式,非常类似于两指惯性滚动。将其配置为使用鼠标左键,这与触摸板上的两指惰性滚动最相似。只需用一根手指按住,然后“抛出网页”即可。当然,这会干扰选择文本,但是它们有一个按钮可以暂时禁用扩展名。
文本选择干扰很烦人,但是将其配置为用于触摸板上的任何其他鼠标按钮会使使用非常棘手。(例如,使用中键单击(可以将其配置为触摸板上的两指单击),将是:用两根手指点击,用两根手指点击并按住,抬起一根手指,然后按上述方式进行动作:D )。
自动滚动。有关如何设置的信息,请参见此答案。另外,设置两指点击以创建中间点击-实际上就是synclient TapButton2=2
。现在,两指单击将在Firefox中弹出autoscroll元素,将鼠标指针远离它会永久地朝该方向滚动,直到单击为止。可悲的是,必须用一根手指来移动指针。(即使禁用了两根手指的滚动,它也无法用两根手指工作。)而且我也找不到如何将此功能的滚动方向反转为“自然”状态。
Strg
一样的Ctrl
吗?