
別のディスプレイに wmctrl を使用する場合、そのためのコマンド ラインは何ですか?
次のようなものは動作しませんでした: su username -c "DISPLAY:50 wmtrl -r :ACTIVE: -b Toggle,fullscreen"
ありがとうございます。Ubuntu 12.04を使用しています。
答え1
上記のコマンドが機能しない理由はいくつかあります。
wmtrl ではなくであるべきです
wmctrl
。そのはず
su -c command username
の代わりに
su username-c command
かもしれないない他のユーザーのセッションでアクティブなウィンドウになる。
しかし最も重要なのは、
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 を押して、と のscreen
2 つのコマンドを入力します。これで、ユーザー B は を使って screen セッションに参加できます。multiuser on
acladd B
screen -x A/
最後に、あなたの質問は に関連しているようですmulti seat arrangement
。これらは非常にまれであり、解決策をテストするためのものがありません。あなたは本当にこれらの状況の 1 つに該当していますか? もしそうであれば、それほど頻繁ではない構成の知識が必要になるため、OP のタイトルでそれを指定する価値があるでしょう。
しかしいずれにせよ、最も可能性が高い(= これをテストするためのマルチシート構成はありません)、接続の場合と同じ方法でこれを実現できますがssh
、この場合、ユーザー B は次のコマンドを発行する必要があります。
xhost +SI:localuser:A
彼のディスプレイへのアクセスを許可します。