我有一个旧的 Xorg 服务器“渲染”扩展似乎有问题(如果启用,大多数字体都是不可见的,除非将鼠标悬停在它们上——在使用 X 客户端和库升级包之后)。
因此,通过添加以下内容,可以解决 Xorg 服务器的新实例的问题/etc/X11/xorg.conf
:
Section "Extensions"
Option "RENDER" "Disable"
EndSection
但是,如果我想继续 X 会话,但让新客户端不使用该扩展,该怎么办? (当然,从逻辑上来说,不能让老客户不使用;但新的呢?)一些选择是:
- 我可以在服务器运行时即时关闭服务器的某个扩展吗?
- 我可以告诉客户不要使用它(例如,使用特定工具包编写的客户)吗?
- 是否有一个“X代理”可以用于我的目标:代理不能简单地宣传它具有“渲染”扩展,或者翻译涉及它的请求,并将所有内容转发到“物理”X服务器,并且然后我的新客户端将连接到代理的显示。
答案1
对于偶尔使用,您可以插入跟踪在您的客户端和服务器之间,并使用 xtrace 的 -e 开关使客户端看不到任何扩展:
-e | --denyextensions Modify all server replies to say there are no extensions available. (As xtrace does supports only a small number of extensions anyway and calls all extended requests "unknown" and all replies to such requests "unexpected").
您将看不到任何扩展,因此“禁用”/隐藏单个扩展没有任何帮助。对于这种情况,您可以尝试修改源代码(我猜 parse.c:replyQueryExtension() 就是这个地方)。
第二个问题是使用 xtrace 可能会减慢您的客户端速度。