为什么我使用X11转发时光标这么大?

为什么我使用X11转发时光标这么大?

我在使用 Cygwin 的 Windows 机器上工作。在本地,我的光标以预期大小呈现得很好:

在此输入图像描述

但是当我连接到远程计算机时,光标很大:

在此输入图像描述

在此示例中,我运行 xterm。这里的光标变化是用X渲染的;这不是我正常的 Windows 光标。我在 CentOS 7 和 Fedora 33 上测试时遇到同样的问题。

为什么我的光标如此之大以及如何修复它?

答案1

由于远程机器和本地机器的屏幕分辨率不同,因此光标很大。

您可能会注意到用于工字钢光标(实际上xterm)在两个屏幕截图中是不同的。这是因为图像是从本地机器加载的光标主题作为位图使用,而不是(根据 X 的原始设计)显示 X 服务器已知其属性的字形。

大多数应用程序不直接链接到实现光标主题的 Xcursor 库。这X11库通过修改创建“字体光标”或“字形光标”的调用来支持光标主题,并且应用程序无法直接看到这一点。

当 xterm 启动时,如果它是在找到 Xcursor 库的环境中构建的,它“知道”光标主题可能正在使用,并覆盖环境XCURSOR_PATH变量。 xterm 补丁 #367 将在该区域中进行更多配置(包括选择不同光标主题的能力),但根本问题是光标主题的设计限制,该限制永远不会得到完全解决。

作为解决方法,您也许可以使用以下命令选择较小的字形XCURSOR_SIZE环境变量(在远程进程中开始xterm):

XCURSOR_SIZE
该变量设置所需的光标大小(以像素为单位)。
如果没有给出环境变量,光标 尝试Xcursor.size资源。
如果没有给出大小,无论是通过环境变量还是资源设置, 光标 接下来尝试 Xft.dpi 资源设置来猜测 16 点光标的大小。最后,如果Xft.dpi未设置,光标使用显示高度除以 48(假设高度为 768)。

相关内容