web-dev-qa-db-ja.com

特定のワークスペースでプログラムのカスタムセットを実行する方法

作品ごとに異なるコンテキストを持つために、いくつかのワークスペースを使用しています。したがって、同じアプリケーションのセットを同じワークスペースで繰り返し実行します。また、アプリケーションの各セットで同じアプリケーションを実行しているため、各アプリケーションを実行するデフォルトのワークスペースを設定しても、この目的では機能しません。

例えば:

  • ワークスペース1:Chrome + PDF Viewer
  • ワークスペース2:3つの端末+ 4つのタブがChrome + 1つのタブがFirefox + Eclipseで開かれている

それで、スクリプトまたはset_workspace1.shのようなものを実行すると、特定のワークスペースで必要なすべてのプログラムを開く方法はありますか?

ところで、私は11.04を実行しています

5
Andres

標準のウィンドウマネージャにはそのような機能はないと思います。

しかし、Devil's Pieはあなたが望むことをすることができます。

http://burtonini.com/blog/computers/devilspie/

Devil's PieのWebサイトからの引用: "Devil's Pieは、ウィンドウが作成されたときにウィンドウを検出し、ウィンドウを一連のルールと照合するように構成できます。ウィンドウがルールと一致する場合、ウィンドウを実行できますそのウィンドウでの一連のアクション。たとえば、X-Chatで作成されたすべてのウィンドウをすべてのワークスペースに表示でき、メインのGkrellm1ウィンドウがページャーまたはタスクリストに表示されない。 "

これがお役に立てば幸いです。

ダニエル

3
omnidan

技術的に言えば、ワークスペースはviewportsと呼ばれます。これは、拡張デスクトップの特定のセクションであり、特定の座標、たとえば0, 0はビューポート1であり、1366, 0はすぐ右にあるものです。

CompizConfig設定マネージャー には、特定のワークスペースでウィンドウを「固定」で開くオプションがありますが、前述のようにスクリプトを作成できます。これが私の例です。

#!/bin/bash
get_viewport()
{
  xprop -root -notype _NET_DESKTOP_VIEWPORT | awk '{print $3,$4}' 
}

spawn_viewport_1()
{
  Nohup gnome-terminal 2>&1   > /dev/null  &
  Nohup chromium-browser 2>&1 > /dev/null  &
}

spawn_viewport_2()
{
 Nohup xterm 2>&1 > /dev/null  &
  Nohup firefox 2>&1 > /dev/null  &
}

main()
{
  case $(get_viewport) in
   "0, 0") spawn_viewport_1  ;; # note , single space in "0, 0" is important
   "1366, 0") spawn_viewport_2    ;;
  esac
}

main

基本的に何が起こっているかというと、それぞれ特定のビューポートに対応する2つの関数があるということです。現在使用しているビューポートを確認する機能もあります。現在ビューポート1(座標0、0)にいる場合、1セットのアプリが生成されます。ビューポート2(座標1366,0)にいる場合は、さまざまなアプリのセットが生成されます。

0