リモートディスプレイ用のwmctrl

リモートディスプレイ用のwmctrl

別のディスプレイに wmctrl を使用する場合、そのためのコマンド ラインは何ですか?

次のようなものは動作しませんでした: su username -c "DISPLAY:50 wmtrl -r :ACTIVE: -b Toggle,fullscreen"

ありがとうございます。Ubuntu 12.04を使用しています。

答え1

上記のコマンドが機能しない理由はいくつかあります。

  1. wmtrl ではなくであるべきですwmctrl

  2. そのはず

           su -c command username
    

    の代わりにsu username-c command

  3. かもしれないない他のユーザーのセッションでアクティブなウィンドウになる。

  4. しかし最も重要なのは、su他のウィンドウではなく、GUI内の現在のテキストウィンドウのユーザーを切り替えるように設計されていることです。たとえば、suマニュアル状態:

... su がターミナル ウィンドウ (つまり、GUI 内のテキストのみのウィンドウ) で使用される場合、そのターミナル ウィンドウとそこから起動されたプログラムのみが新しいユーザーのアカウント (例: root) で実行されます。...

あなたが考えているようなことを実行する適切な方法は、他のユーザーのXサーバーと通信することですが、すべてのXセッションはそれに対して十分に備えています。たとえば、sshユーザーAとしてリモートマシンにログインしている場合、Bは次のようにしてそれを許可する必要があります。

     xhost +

そして、Xセッションにアクセスするには、

    export DISPLAY=:0.0 

そして今、あなたの命令は、

     wmctrl -r :ACTIVE: -b toggle,fullscreen

働くでしょう。

他のユーザーとターミナルを共有して、自分が入力している内容を相手に見せるだけであれば、 をインストールしscreen、 でセッションを開始し、エスケープ シーケンス Ctrl+A を押して、と のscreen2 つのコマンドを入力します。これで、ユーザー B は を使って screen セッションに参加できます。multiuser onacladd Bscreen -x A/

最後に、あなたの質問は に関連しているようですmulti seat arrangement。これらは非常にまれであり、解決策をテストするためのものがありません。あなたは本当にこれらの状況の 1 つに該当していますか? もしそうであれば、それほど頻繁ではない構成の知識が必要になるため、OP のタイトルでそれを指定する価値があるでしょう。

しかしいずれにせよ、最も可能性が高い(= これをテストするためのマルチシート構成はありません)、接続の場合と同じ方法でこれを実現できますがssh、この場合、ユーザー B は次のコマンドを発行する必要があります。

     xhost +SI:localuser:A

彼のディスプレイへのアクセスを許可します。

関連情報