![鼠标在镜像环境中会如何表现?](https://linux22.com/image/219217/%E9%BC%A0%E6%A0%87%E5%9C%A8%E9%95%9C%E5%83%8F%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BC%9A%E5%A6%82%E4%BD%95%E8%A1%A8%E7%8E%B0%EF%BC%9F.png)
抱歉,如果这听起来令人困惑,但这不是生物学探究。我打算切换到 Linux,但有几个问题需要解答。如果单个监视器如中所述进行镜像这个链接,那么我们会看到屏幕上的指针移动与我们的物理鼠标手移动类似还是相反?如果方向相反,有什么办法可以让鼠标像正常设置一样移动,同时保持屏幕镜像?
答案1
OP 链接中描述的实际命令是xrandr --reflect [x|y|xy]
。其预期用途是,例如,当您在倒置安装在天花板上的投影仪上显示时,和/或投影到穿透式投影屏幕上,因此需要将图像翻转为观看者的正向方向。
在这两种情况下,预计显示器和鼠标移动都会以相同的方式翻转:这xrandr --reflect
意味着影响特定显示设备的 GPU 输出的整体,以补偿非标准定位显示设备本身,或镜像显示设备输出的光学设备。
要在保持屏幕镜像的同时“取消反转”鼠标运动,您必须使用 AB 在其先前删除的答案中建议的坐标变换矩阵命令。
示例:
xinput
表示我的无线鼠标被识别为Logitech USB Receiver
,xrandr
表示我的显示输出为DP-0
。
xinput --set-prop --type=float "Logitech USB Receiver" 'Coordinate Transformation Matrix' -1 0 1 0 1 0 0 0 1
现在我的显示正常,但是当我向左移动鼠标时,指针向右移动,反之亦然。换句话说,鼠标运动在 X 轴上是镜像的。
xrandr --output DP-0 --reflect x
添加此命令后,我的整个显示在 X 方向上镜像:鼠标箭头指针指向右上角而不是左上角。但由于之前的命令在 X 方向上反转鼠标运动,因此鼠标“感觉”正常。
xinput --set-prop --type=float "Logitech USB Receiver" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
这会将鼠标运动变换矩阵返回到标准,因此虽然xrandr --reflect x
仍然有效,但现在鼠标方向和桌面视图都在 X 方向上翻转。要移动鼠标以显示坐标 (0,0),我将像往常一样向上和向左移动鼠标,同时鼠标指针移动到屏幕的右上角。
xrandr --output DP-0 --reflect normal
这会消除输出反射,使一切恢复正常。