1

Если я хочу использовать wmctrl для другого отображения, какова командная строка для этого?

Что-то вроде: su username -c "DISPLAY: 50 wmtrl -r: ACTIVE: -b toggle, fullscreen" не работает

Спасибо - я использую Ubuntu 12.04

1 ответ1

2

Есть несколько причин, по которым вышеуказанная команда не может работать.

  1. Это должен быть wmctrl , а не wmtrl.

  2. Так должно быть

           su -c command username
    

    вместо команды su username-c command

  3. В сеансе другого пользователя может не быть активного окна.

  4. Но самое главное, 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

предоставляя вам доступ к его дисплею.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .