在双显示器系统中是否可以镜像单个窗口而不是整个屏幕?换句话说,我可以要求 X 应用程序在 DISPLAY:0.0
和 上同时打开:0.1
吗?
基本上,这对于演示很有用,在演示中,只需将 PDF(或类似)窗口的副本发送到投影仪。
我的窗口管理器是 Openbox。
答案1
对于 X11 和 Openbox 的这一特定要求,我不知道是否可以进行这样的黑客攻击,但是使用 VNC 很容易实现您所追求的目标。
使用 x11vnc 镜像单个 X 应用程序
- 获取要镜像的窗口的 ID:
xwininfo
x11vnc -id {replace-by-window-id}
可能您必须安装 x11vnc,但您可以使用您的电脑上已安装的任何 VNC 客户端(Ubuntu 上的 Remmina),只需注意 x11vnc 给出的端口号即可。
使用默认应用程序镜像整个屏幕
大多数流行的 Linux 发行版已经安装了 vnc 服务器和客户端。在 Ubuntu 上,VNC 服务器是 vino,Remmina 是客户端,安装它们很简单,类似于sudo apt-get install vino remmina
或等效的sudo yum install vino remmina
。
要检查 Vino 是否已安装,请启动vino-preferences
,如果您已获得首选项窗口,则启用共享,并在安全部分要求出现有关连接或密码的确认对话框。
完成此操作后,您可以通过以下方式启动 Vino 服务器/usr/lib/vino/vino-server
(至少对于 Ubuntu 来说这是有效的)。如果您希望 vino 自动启动,请在启动应用程序中输入此命令。
然后,您只需与 Remmina 连接:选择 VNC 作为连接类型,然后在地址输入框中输入0.0.0.0:5900
并按Connect!
将会弹出一个对话框,询问您是否允许远程连接(如果您已在 Vino 首选项中进行了设置)。允许后,您将获得一个双屏幕镜像到另一个屏幕上。问题解决了。
- 如果您处于安全网络中,因此速度和质量是您的首要任务,您可以启用与您的 vino 服务器的连接而不加密:
gsettings set org.gnome.Vino require-encryption false