如果我想将 wmctrl 用于另一个显示器,那么要执行此操作的命令行是什么?
类似这样的命令:su username -c "DISPLAY:50 wmtrl -r :ACTIVE: -b toggle,fullscreen" 不起作用
谢谢-我正在运行 ubuntu 12.04
答案1
上述命令无法运行的原因有多种。
应该是
wmctrl
,而不是wmtrl。它应该是
su -c command username
代替
su username-c command
有可能不是成为其他用户会话中的活动窗口。
但最重要的是,
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 on
和acladd B
。现在用户 B 可以通过 加入您的屏幕会话screen -x A/
。
最后,您的问题似乎与multi seat arrangement
. 这些情况极其罕见,我也没有一个可以测试解决方案的情况。您真的处于这些情况之一吗?如果是这样,那么在您的 OP 标题中指定它可能值得,因为这需要了解不太常见的配置。
但无论如何,最有可能的(=我没有多座位安排来测试这个),您可以通过与连接相同的方法实现这一点ssh
,但在这种情况下用户 B 必须发出命令:
xhost +SI:localuser:A
授予您访问其展示内容的权限。