Если я хочу использовать wmctrl для другого отображения, какова командная строка для этого?
Что-то вроде: su username -c "DISPLAY: 50 wmtrl -r: ACTIVE: -b toggle, fullscreen" не работает
Спасибо - я использую Ubuntu 12.04
Есть несколько причин, по которым вышеуказанная команда не может работать.
Это должен быть wmctrl
, а не wmtrl.
Так должно быть
su -c command username
вместо команды su username-c command
В сеансе другого пользователя может не быть активного окна.
Но самое главное, su
предназначен для переключения пользователя текущего текстового окна внутри графического интерфейса, а не любого другого окна. Например, руководство su заявляет:
... когда su используется в окне терминала (т. е. текстовом окне в графическом интерфейсе), только то окно терминала и программы, которые запускаются из него, запускаются с учетной записью нового пользователя (например, root), .. ,
Правильный способ выполнить что-то похожее на то, что вы имеете в виду, это поговорить с X-сервером другого пользователя, что-то, против чего, однако, все X-сессии хорошо оснащены. Например, если вы вошли через ssh
на удаленный компьютер как пользователь A, B должен позволить вам сделать это с помощью
xhost +
и тогда вы можете получить доступ к его сеансу X с помощью
export DISPLAY=:0.0
и теперь твоя команда,
wmctrl -r :ACTIVE: -b toggle,fullscreen
буду работать.
Если все, что вам нужно, это поделиться терминалом с другим пользователем, чтобы он мог видеть, что вы печатаете, то вам нужно установить screen
, запустить сеанс с screen
, нажать escape-последовательность Ctrl+A, а затем включить обе команды в multiuser on
режим. и acladd B
Теперь пользователь B может присоединиться к вашему сеансу экрана с помощью screen -x A/
.
Наконец, ваш вопрос, похоже, касается организации multi seat arrangement
.Это крайне редко, и у меня нет ни одного, чтобы проверить решение на. Вы действительно в одной из этих ситуаций? Если это так, то, вероятно, стоило бы указать это в заголовке вашего OP, поскольку это требует знания не очень частой конфигурации.
Но в любом случае, скорее всего (= у меня нет многопользовательского устройства для проверки этого), вы можете добиться этого тем же методом, что и для соединения ssh
, за исключением того, что в этом случае пользователь B должен ввести запятую:
xhost +SI:localuser:A
предоставляя вам доступ к его дисплею.