我目前正在使用Cinnamon运行Linux Mint 17.2。我有2台显示器。
当我在Cinnamon设置中将显示器设置为相邻时,鼠标可以自由移动通过显示器之间共享的边框,但无法逃离可见区域。
也就是说,如果我将监视器设置为仅共享角落,则鼠标有效地锁定到当前监视器,并且只能通过角落转移到另一个监视器。
但是,将监视器设置为不相邻允许鼠标在虚拟帧缓冲区中自由漫游,包括不可见区域。
我认为Cinnamon设置了一些控制此行为的标志,但使用xrandr
更改显示器位置具有相同的效果。
此外,即使没有窗口管理器,我只使用Xorg
启动普通xterm
时也是如此,并使用xrandr
配置监视器。
当所有显示器相邻时,究竟是什么阻止鼠标离开可见区域? 有没有办法覆盖此行为?
能够控制这个可能是有用的,例如每当你试图点击边框附近的东西时停止鼠标离开监视器,而不运行监视鼠标的繁忙循环并在需要时将其移回(并且通过使监视器在角落附近而不会使帧缓冲区大小加倍)。
通过更多控制,它可以用于例如让鼠标“不情愿”离开当前窗口,也许做其他有趣的事情。至少它可以重新实现this thing,以便它可以实际锁定鼠标到Chrome浏览器或OpenGL游戏等应用程序的窗口,而不仅仅是xterm
等。
现在我想起来了,我甚至可以尝试实现它,如果它还没有,如果我找到相关的代码。
答案 0 :(得分:2)
好的,我找到了相关的代码。
此行为在Xorg X服务器中以RandR扩展名进行硬编码,包括可见区域连续性检查。
绝对没有任何可配置性。好吧,除非你同意dwm的创建者关于"配置"意思是:)
我同意。现在相关的代码位置是randr/rrpointer.c
和
randr/rrcrtc.c:332,1685
。
如果有人为此创建了适当的X srver扩展名,那就太好了。