web-dev-qa-db-ja.com

Linuxで現在のデスクトップに開いているウィンドウを表示します

別の仮想デスクトップでプログラムを開いているとしましょう。スクリプトを使用してそのプログラムを現在のデスクトップに移動する方法はありますか?

次のコマンドは、私が取得できる最も近いコマンドです。

wmctrl -a program

これにより、プログラムが開いているデスクトップに切り替わり、最前面のウィンドウになります。ただし、プログラムがあるデスクトップに移動する代わりに、プログラムを現在のデスクトップに移動したいと思います。このコマンドもあります:

wmctrl -R program

ドキュメントには、これで私が望むことを実行できると書かれていますが、前のコマンドと同じことを実行します。

4
tony_sid

-Rスイッチは、Metacity(GNOMEのデフォルトのウィンドウマネージャー)を使用している場合は正常に機能しますが、Compiz(最近のUbuntuのデフォルトのウィンドウマネージャー)を使用している場合はそれほど機能しません。 metacity --replaceを使用してMetacityに切り替えることで、これを自分で確認できます(compiz --replaceを使用してCompizに戻ります)。

苛立たしいことに、私は理解できませんでしたwhyこれはCompizでは機能しませんが、これまでに見つけたものを共有するのはいいことだと思いました。

  • 私の場合、wmctrl -dは7680x1200のデスクトップジオメトリ(DG)をリストします(私は1920x1200の解像度を持ち、4つのワークスペースを使用します)。

    この場合、wmctrl -e 0,1920,-1,-1,-1(重力、左からのピクセル、上からのピクセル、ウィンドウの幅、ウィンドウの高さ-値-1を使用して、ウィンドウを2番目のワークスペースに移動できます。現在の値は変更しないでください)。

    特に、wnckpropまたはxwininfoを使用して、現在のウィンドウのジオメトリ値を取得できます。

  • Putプラグインをアクティブにすると、次のコマンドを使用して、現在アクティブ/フォーカスされているウィンドウを2番目のワークスペース(ビューポート?)に移動できます。

    dbus-send --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/put/allscreens/put_viewport_2_key org.freedesktop.compiz.activate

それはほとんどそれです、うまくいけば、他の誰かが問題へのより多くの洞察を提供することができます。

関連

リソース

3