首页 文章

X11将鼠标限制在可见区域

提问于
浏览
2

我目前正在使用Cinnamon运行Linux Mint 17.2 . 我有2台显示器 .

当我将显示器设置为在Cinnamon设置中相邻时,鼠标可以自由移动通过显示器之间共享的边框,但无法逃离可见区域 .

也就是说,如果我将监视器设置为仅共享角落,则鼠标有效地锁定到当前监视器,并且只能通过角落逃逸到另一个监视器 .

但是,将监视器设置为不相邻允许鼠标在虚拟帧缓冲区中自由漫游,包括不可见区域 .

我认为Cinnamon设置了一些控制此行为的标志,但使用 xrandr 更改显示器位置具有相同的效果 .

此外,即使没有窗口管理器,我只使用 xterm 启动普通 Xorg 也是一样的,并使用 xrandr 配置监视器 .

当所有显示器相邻时,究竟是什么阻止鼠标离开可见区域? Is there a way to override this behavior?

能够控制这可能是有用的,例如每次尝试单击边框附近的某些内容时停止鼠标离开监视器,而不运行监视鼠标的繁忙循环,并在需要时将其移回(并且不要使监视器在角落附近加倍帧缓冲区大小) .

通过更多控制,它可以用于例如让鼠标"reluctant"离开当前窗口,也许做其他有趣的事情 . 至少它可以重新实现this thing,以便它可以实际锁定鼠标到窗口,用于Chrome浏览器或OpenGL游戏等应用程序,而不仅仅是 xterm 等 .

现在我想到了它,我甚至可能尝试实现它,如果它还没有,如果我找到相关的代码 .

1 回答

  • 1

    好的,我找到了相关的代码 .

    此行为在Xorg X服务器中以RandR扩展名进行硬编码,包括可见区域连续性检查 .

    绝对没有任何可配置性 . 好吧,除非你同意dwm的创建者关于"configuration"这个词的意思:)
    我同意 . 现在相关的代码位置是 randr/rrpointer.crandr/rrcrtc.c:332,1685 .
    如果有人为此创建了适当的X srver扩展,那会很不错 .

相关问题