別の仮想デスクトップでプログラムを開いているとしましょう。スクリプトを使用してそのプログラムを現在のデスクトップに移動する方法はありますか?
次のコマンドは、私が取得できる最も近いコマンドです。
wmctrl -a program
これにより、プログラムが開いているデスクトップに切り替わり、最前面のウィンドウになります。ただし、プログラムがあるデスクトップに移動する代わりに、プログラムを現在のデスクトップに移動したいと思います。このコマンドもあります:
wmctrl -R program
ドキュメントには、これで私が望むことを実行できると書かれていますが、前のコマンドと同じことを実行します。
-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
それはほとんどそれです、うまくいけば、他の誰かが問題へのより多くの洞察を提供することができます。
関連
リソース