web-dev-qa-db-ja.com

Xubuntu 16.04の新しいワークスペースで新しいアプリを起動する方法

新しいアプリを開くたびに新しいワークスペースを開く方法はありますか?

たとえば、ワークスペース1に端末があり、spotifyを開きたいが、ワークスペース2にあり、spotifyを開いたときに自動的にワークスペース2に移動したい。

これは可能ですか?

3
Mihai Temian

私はこの特定のアプリケーションを実装していませんが、xdotoolがあなたが望むことをするようです。

次のようなラッパースクリプトを使用してアプリケーションを起動してみてください。

desktops=$(xdotool get_num_desktops)
desktops="$desktops"+1
xdotool set_num_desktops "$desktops"
xdotool set_desktop "$desktops"
run-my-application

これをより堅牢にするために必要ないくつかの詳細を省きましたが、それはあなたが何をしているかによって多少異なり、主なアイデアを曖昧にするからです。

xdotoolコマンドは、確認する必要があるステータスを返します。ステップが失敗した場合、盲目的に続行する必要はありません。

スクリプトで作成できるデスクトップの最大数を設定できます。

xdotoolは、ウィンドウが既に存在するかどうか、および現在どのデスクトップにあるかを確認できます。また、ウィンドウを別のデスクトップに移動することもできます。また、ウィンドウをアクティブにして、フォアグラウンドに移動してフォーカスを合わせることができます。

特定の操作の後にsleepコマンドを追加して、次のステップを実行する前にデスクトップおよび特にアプリケーションにそれらの操作を行う時間を与える必要がある場合があります。

スクリプトは(ターミナルからだけでなく)デスクトップから実行される可能性があるため、デバッグを容易にするためにスクリプトが行ったことを示すメッセージをファイルに記録することもできます。

少し注意が必要なのは、アプリケーションで複数のウィンドウを開いている場合です。次に、インスタンスのスタックを処理し、何らかの形で適切なインスタンスを見つけるか、すべてのインスタンスで作業する必要があります。たとえば、私のThunderbirdは起動時にマスターパスワードを要求するため、2つのウィンドウが開きます。

xdotoolは、1つのxdotoolコマンドから複数のアクションを実行できるコマンドチェーンも提供します。現在のアクションの結果は、コマンド内の次のアクションによって読み取られるスタックにプッシュされます。これを視覚化してデバッグするのは難しいと感じましたが、機能させることができれば非常に強力です。

xdotoolはこの特定の問題に最適ですが、キープレスとマウスを発行することにより、あらゆる種類のデスクトップ/ GUIアクションを自動化するのに役立つ AutoKey もご覧ください。手動で行っているように見えるイベントは、ほとんどのアプリケーションおよびデスクトップ機能で動作します。

0
Joe