如何更改当前正在运行的应用程序的显示

如何更改当前正在运行的应用程序的显示

我在中央服务器上打开了多个显示器。是否可以将正在特定平台上运行的 X-window 应用程序“移动”DISPLAY到另一个平台上DISPLAY?如何才能做到这一点?

我正在使用xpra多个远程显示器。

答案1

无法将正在运行的 X 窗口应用程序移动到由变量确定的不同显示器DISPLAY,原因有两个。

第一个是改变正在运行的进程的环境是很困难的,并且不可能以考虑到变化的方式可靠地做到这一点。

第二个是DISPLAY变量只是一个输入,通常仅在应用程序启动时才考虑它。 X 应用程序调用XOpenDisplay在其启动初期,直接或间接地,并且(或者更确切地说,XTOpenDisplay) 是要DISPLAY考虑的内容(如有必要,可以通过其他方式指定要使用的 X 服务器)。XOpenDisplay返回一个指向不透明Display结构的指针,该结构表示与 X 服务器的连接,这就是此后用于与 X 服务器通信的所有内容。之后更改 的值DISPLAY不会有任何效果;应用程序必须以某种方式意识到该值已更改,关闭其与 X 服务器的连接,然后打开一个新连接。

这两点放在一起意味着即使编写一个可以更改其显示的应用程序也非常困难(因为它的设计目的是这样做),更不用说在应用程序不希望它改变显示时更改显示了。

相关内容