wmctrl 用于远程显示

wmctrl 用于远程显示

如果我想将 wmctrl 用于另一个显示器,那么要执行此操作的命令行是什么?

类似这样的命令:su username -c "DISPLAY:50 wmtrl -r :ACTIVE: -b toggle,fullscreen" 不起作用

谢谢-我正在运行 ubuntu 12.04

答案1

上述命令无法运行的原因有多种。

  1. 应该是wmctrl,而不是wmtrl。

  2. 它应该是

           su -c command username
    

    代替su username-c command

  3. 有可能不是成为其他用户会话中的活动窗口。

  4. 但最重要的是,su它旨在切换 GUI 中当前文本窗口的用户,而不是任何其他窗口。例如,su 手册状态:

...当在终端窗口(即 GUI 中的纯文本窗口)中使用 su 时,只有该终端窗口和从该窗口启动的程序才会使用新用户的帐户(例如 root)运行,...

执行类似您所想的操作的正确方法是与其他用户的 X 服务器对话,但所有 X 会话都具备这种能力。例如,如果您ssh以用户 A 的身份通过远程计算机登录,则 B 必须允许您通过以下方式执行此操作

     xhost +

然后你就可以通过以下方式访问他的 X 会话

    export DISPLAY=:0.0 

现在你的命令是,

     wmctrl -r :ACTIVE: -b toggle,fullscreen

将工作。

如果您想要的只是与另一个用户共享一个终端,以便他可以看到您正在输入的内容,那么您应该安装screen,使用 启动会话screen,按下转义序列 Ctrl+A,然后输入两个命令multiuser onacladd B。现在用户 B 可以通过 加入您的屏幕会话screen -x A/

最后,您的问题似乎与multi seat arrangement. 这些情况极其罕见,我也没有一个可以测试解决方案的情况。您真的处于这些情况之一吗?如果是这样,那么在您的 OP 标题中指定它可能值得,因为这需要了解不太常见的配置。

但无论如何,最有可能的(=我没有多座位安排来测试这个),您可以通过与连接相同的方法实现这一点ssh,但在这种情况下用户 B 必须发出命令:

     xhost +SI:localuser:A

授予您访问其展示内容的权限。

相关内容