web-dev-qa-db-ja.com

特定のワークスペースに移動するコマンドはありますか?

特定のワークスペースへの迅速な切り替えを可能にするワークスペース切り替えランチャーのクイックリストを作成しようとしています。 (私の友人は時々私のコンピューターを使用し、キーボードショートカットを楽しんでいないので、彼を助けたいです。)

それで、特定のワークスペースに焦点を合わせることを強制する端末に入力できるコマンドはありますか?

21
Leron

wmctrl を使用できます。

基本コマンド:
wmctrl -dは、すべてのワークスペースを表示します。
wmctrl -s <workspace_name>は、特定のワークスペースに変更します。

Compizを使用している場合、Compizの「ワークスペース」は実際には単一のワークスペースのビューポートであるため、トリックを行う必要があります。

トリックの手順

wmctrl -dの出力を確認します。たとえば、私の場合は次のとおりです。

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

これは、実際には、自分が「考えている」もの(9つの「ワークスペース」、3 x 3)ではなく、4098 x 2304のワークスペースが1つあることを意味します。

これがどのように機能するかです。ワークスペース全体を取得し、「考えている」「ワークスペース」の数で分割します。私の場合:4098/3 = 1366および2304/3 = 768。

「ワークスペース」1に移動する場合、コマンドは次のとおりです。

wmctrl -o 0,0

次に、「ワークスペース」4に移動したい場合、コマンドは次のとおりです。

wmctrl -o 0,768

「ワークスペース」8に移動する場合、コマンドは次のとおりです。

wmctrl -o 1366,1536

「ワークスペース」9に移動する場合、コマンドは次のとおりです。

wmctrl -o 2732,1536

とった? ;-)

-oフラグは、値を「切り捨て」ます。つまり、実際のピクセルが属する「ワークスペース」を変更します。以下は同等です:

wmctrl -o 0,0
wmctrl -o 1365,767
33
desgua

xdotoolを使用すると、さまざまなワークスペース(プログラムのドキュメント内では「デスクトップ」とも呼ばれます)を管理するための複数のオプションがあります。 man xdotoolからのコマンドをつなぎ合わせることは非常に興味深く、創造的であると思います。以下で作成したコマンドは、スクリプトで役立つ可能性があります。

注:一部のウィンドウマネージャーでは、またはcompizを使用している場合は、set_desktop_viewportなどのxdotoolコマンドを使用する必要があります。およびget_desktop_viewport。上記の desgua のような別の方法でコマンドを指定する必要があるかもしれませんが、私にとってset_desktopおよびset_desktop_for_windowコマンドは非compizシステムで最も有用であることがわかりました。)

このソリューションは、Xubuntu/Lubuntuユーザー、またはcompizなどを実行していないユーザーなどに最も有用です

現在のワークスペースの数をリストするには、次を入力します

xdotool get_num_desktops

次のコマンドは、少なくとも1つの他のワークスペースがある場合にのみ機能します。

ワークスペース1にフォーカスを変更するには、単に入力します

xdotool set_desktop 1 

次に、デフォルトのワークスペースに戻るには、次を入力します

xdotool set_desktop 0

ワークスペースは、コマンドの最後の値(1または2または3など)として指定する必要があります。

現在作業中のワークスペースの番号を見つけるには、次を使用できます。

xdotool get_desktop

これらのコマンドはスクリプトで使用でき、何を達成するのに非常に役立つはずです。

特定のデスクトップにアプリケーションを切り替える方法については、ここで私の答えを参照してください。

ワークスペースの切り替えに使用できるより便利なオプションについては、man xdotoolを参照してください。

8
user76204

あなたが望むことをするスクリプトを実装しました。ここにあります: https://github.com/norswap/wmov/blob/master/wmov.sh

実際、desguaの投稿で説明されているように機能します。また、ウィンドウを他のワークスペースに送信する機能もあります。

1
Norswap

compiz-wiki には compiz-send.py というスクリプトがあります。これは、部分的に質問を解決するものです。特定のワークスペースではありませんが、隣のワークスペースにアクセスできます。 。

これにより、コマンドを発行できます
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
そしてビューポートを左または右に1にします。

0
Rinzwind