wmctrl für eine Remote-Anzeige

wmctrl für eine Remote-Anzeige

Wenn ich wmctrl für eine andere Anzeige verwenden möchte, wie lautet die Befehlszeile dafür?

Etwas wie: su username -c "DISPLAY:50 wmtrl -r :ACTIVE: -b toggle,fullscreen" hat nicht funktioniert

Danke - ich verwende Ubuntu 12.04

Antwort1

Es gibt mehrere Gründe, warum der obige Befehl nicht funktionieren kann.

  1. Es sollte heißen wmctrl, nicht wmtrl.

  2. Es sollte sein

           su -c command username
    

    anstattsu username-c command

  3. Es könntenichtein aktives Fenster in der Sitzung des anderen Benutzers sein.

  4. Aber am wichtigsten ist, sudass es so konzipiert ist, dass der Benutzer des aktuellen Textfensters innerhalb einer GUI wechselt, nicht eines anderen Fensters. Zum Beispiel dassu-HandbuchZustände:

... wenn su in einem Terminalfenster (dh einem Nur-Text-Fenster in einer GUI) verwendet wird, werden nur dieses Terminalfenster und die von dort gestarteten Programme mit dem Konto des neuen Benutzers (z. B. root) ausgeführt, ...

Der richtige Weg, um etwas wie das, was Sie im Sinn haben, durchzuführen, besteht darin, mit dem X-Server des anderen Benutzers zu kommunizieren, wogegen jedoch alle X-Sitzungen gut gerüstet sind. Wenn Sie beispielsweise sshals Benutzer A über an einem Remote-Computer angemeldet sind, muss B Ihnen dies erlauben, indem er

     xhost +

und dann können Sie auf seine X-Sitzung zugreifen mittels

    export DISPLAY=:0.0 

und nun dein Befehl,

     wmctrl -r :ACTIVE: -b toggle,fullscreen

wird funktionieren.

Wenn Sie lediglich ein Terminal mit einem anderen Benutzer teilen möchten, sodass dieser sehen kann, was Sie eingeben, sollten Sie installieren screen, eine Sitzung mit starten screen, die Escape-Sequenz Strg+A drücken und dann die beiden Befehle multiuser onund eingeben acladd B. Nun kann Benutzer B Ihrer Bildschirmsitzung mittels beitreten screen -x A/.

Schließlich scheint sich Ihre Frage auf eine zu beziehen multi seat arrangement. Diese sind äußerst selten und ich habe keines, an dem ich die Lösung testen könnte. Befinden Sie sich wirklich in einer dieser Situationen? Wenn ja, wäre es wahrscheinlich sinnvoll, dies im Titel Ihres OP anzugeben, da dies Kenntnisse über eine nicht so häufige Konfiguration erfordert.

Aber auf jeden Fall,höchstwahrscheinlich(= Ich habe keine Mehrplatzkonfiguration, an der ich dies testen könnte), Sie können dies mit der gleichen Methode wie für die sshVerbindung erreichen, außer dass in diesem Fall Benutzer B den Befehl eingeben muss:

     xhost +SI:localuser:A

und gewährt Ihnen Zugriff auf sein Display.

verwandte Informationen