Zhr*_*hro 2 linux xforwarding x11
我在使用 Cygwin 的 Windows 机器上工作。在本地,我的光标以预期大小呈现得很好:
但是当我连接到远程计算机时,光标很大:
在此示例中,我运行 xterm。这里的光标变化是用X渲染的;这不是我正常的 Windows 光标。我在 CentOS 7 和 Fedora 33 上测试时遇到同样的问题。
为什么我的光标如此之大以及如何修复它?
光标很大是因为远程和本地计算机的屏幕分辨率不同。
您可能会注意到,两个屏幕截图中用于I 形光标(实际上是xterm )的字形不同。这是因为当使用光标主题时,图像是从本地计算机加载的,作为位图,而不是(根据 X 的原始设计)显示 X 服务器已知其属性的字形。
大多数应用程序不直接链接到实现光标主题的 Xcursor 库。X11 库通过修改创建“字体光标”或“字形光标”的调用来支持光标主题,而应用程序无法直接看到这一点。
当 xterm 启动时,如果它是在找到 Xcursor 库的环境中构建的,它“知道”光标主题可能正在使用,并覆盖环境XCURSOR_PATH
变量。xterm 补丁 #367 将在该区域中进行更多配置(包括选择不同光标主题的能力),但根本问题是光标主题的设计限制,该限制永远不会得到完全解决。
作为解决方法,您可以使用环境变量(在启动XCURSOR_SIZE
xterm的远程进程中)选择较小的字形:
XCURSOR_SIZE
该变量设置所需的光标大小(以像素为单位)。
如果未给出环境变量,Xcursor 会尝试该Xcursor.size
资源。
如果没有给出大小,无论是通过环境变量还是资源设置, Xcursor 接下来会尝试 Xft.dpi 资源设置来猜测 16 点光标的大小。最后,如果Xft.dpi
未设置,Xcursor使用显示高度除以 48(假设高度为 768)。