ログイン
編集不可のページディスカッション情報添付ファイル

2013-01-26 14:16:19時点のリビジョン3

メッセージを消す
clear/wm_devel/2013-01-14

MMA

仮想デスクトップ考

方式

仮想デスクトップはその実現方法から3つに大別される。

  1. よくあるやつ
    • 一番素直なタイプの仮想デスクトップでは、物理的な画面と同じサイズの仮想的なデスクトップを複数枚(2枚以上)用意する。
  2. virtual root型
    • 物理的な画面サイズより大きな仮想的デスクトップ(巨大なウィンドウを1つ作ってルートウィンドウのように扱うことが多い)を1つだけ用意し、常にその一部が画面に表示されていると考える。大きな仮想デスクトップの中で表示領域をスクロールしながら使う。vtwm系とかはこれ。
  3. タグ型
    • 仮想的な画面を用意するのではなく、ウィンドウの属性としてタグと呼ばれる集合を用意しておいて、タグごとにウィンドウを表示する。1つのウィンドウに複数のタグを設定しておくことで、ウィンドウが複数の仮想デスクトップに表示される(いわゆるstickyなウィンドウ)ようにするのが容易(他の方法でも可能)。dwmなどのタイル型WMに多い。

仮想デスクトップの状態を把握する方法

現在どの仮想デスクトップを表示しているのか、あるいはどの仮想デスクトップにウィンドウがあるのかを表示しておく場合の方法。

  1. タスクバー
    • 仮想デスクトップを採用している場合、ウィンドウ一覧に加えて仮想デスクトップの一覧が表示してあり、タスクバー上をクリックすることで仮想デスクトップを切り替えられるようになっていることが多い。
  2. ページャ
    • 仮想デスクトップの全体図とその中のウィンドウ配置を縮小して表示したもの。ページャ上のウィンドウをドラッグするとウィンドウ自体が動く、というようになっている場合が多い。virtual root型の仮想デスクトップではほぼ必須で、表示領域のスクロールもページャを用いて行う。
  3. 複合型
    • タスクバー上にページャが乗る。GNOME2などのDEはこれを備えていることが多い。

マルチディスプレイとの兼ね合い

マルチディスプレイ環境では仮想デスクトップをどのように表示するかという問題が生まれる。

virtual root型の場合は単純で、各物理画面ごとに大きな仮想デスクトップの一部(別々でも良い)を表示すれば良い。

よくあるタイプとタグ型(この2つは実現方法こそ違えど見た目はほとんど同じになる)の場合いくつかやり方がある。ここではデュアルディスプレイ、仮想デスクトップ4つの状況を考える。

  1. 各物理画面ごとに仮想デスクトップの集合を持つ
    • それぞれのディスプレイに独立した仮想デスクトップの集合を持たせる。すなわち、仮想デスクトップの総数は4*2=8となる。あまり考えずに実装できるので楽といえば楽。デスクトップ数が多いのでウィンドウが多くなっても画面が混まずに済むが、普段そんなにウィンドウを表示しないのなら確実に持て余して使い辛くなる。
  2. 仮想デスクトップの集合は1つで、随時物理画面にマッピングする
    • 仮想デスクトップの総数はあくまで4つで、そのうちの2つを物理画面に表示する、という方式(同じものを2つの画面に表示することも考えられる)。この方式では仮想デスクトップの(平面上の)配列が変化しうる問題と、物理画面のサイズが異なる場合にどうするかという問題がある。

1/26追記: マルチディスプレイ下でミラーリングするとさらに厄介なことになる。