仮想デスクトップなんて不便に決まっているじゃないか、所詮高解像度環境を整えられない人が仮想環境に頼っているだけじゃないか。そう思っているのなら、それは間違っている。高解像度環境と仮想デスクトップ環境は共存すべきものであって、どちらか一方で満足すべきものではない。
何故高解像度環境ではなく仮想デスクトップ環境を求めるのか。まずはその理由から説明しよう。
高解像度環境は確かに便利だ。多くのものを同時に表示することができる唯一の方法といえる。
だが、高解像度を実現するには表示密度を上げるか、表示面積を広げるしかない。もし表示密度を上げた、高精細な表示環境に目がついて行くのなら、仮想デスクトップ環境は要らないかもしれない。小さなラップトップのモニタ上に表示されるフルHD環境を何の苦無く操作できるなら、間違いなく要らないだろう。
しかしそのような人は多くない。少なくとも僕には文字が小さすぎて無理だ。高解像度環境を活用するためには表示面積を広げるしかない。また、コスト面で表示面積を広げている人も多い。液晶パネルの価格が下がってきたため、そこそこの解像度のモニタを2枚利用して高解像度環境を実現している人も多いだろう。
面積を広げることによって実現された高解像度環境には一つの問題がある。視線移動が必要なのだ。大きく首を動かす必要がある環境を作ってしまっている人もいる。このような場合、体を痛めることにもなりかねない。
もちろん仮想デスクトップ環境でもデスクトップ切り替えによるタイムロスは生じる。だが、その代わりに画面上の一等地で作業することができるのだ。
高解像度環境であっても、画面の最も使いやすいところを無駄にしているのでは意味がない。同じアプリケーションを殆どの時間眺めるのであれば、仮想デスクトップ環境は要らないかもしれない。しかし、複数のアプリケーションをある程度の時間眺めるケースが想定されるのであれば、仮想デスクトップ環境は作業効率を高めうる。
仮想デスクトップ環境はしばしば広いデスクトップを仮想的に実現するものとして紹介される。しかし、そこにこだわっているから不便なままなのだ。
仮想デスクトップに求められている機能は複数の状態を保持することであって、広いデスクトップではない。単に広いデスクトップを求めるのであれば、物理的に高解像度環境を用意した方が良いだろう。
仮想デスクトップ環境は、そのように使うべきではない。
突然だが、画面上のアプリケーション配置にローカルルールを決めてはいないだろうか。特に、高解像度環境を活用している人の多くは自分ルールを決めていると思われる。
ある人は画面の左には仕事関連を、右にはチャット関連をまとめるかもしれない。ある人はメインのモニタで画像編集をしつつ、横に置かれたサブモニタでちょっとした素材を探せるようにブラウザを常駐させているかもしれない。
これらは空間的に状態を作り出していると捕らえることができる。
仮想デスクトップが実現するのは、物理的なモニタ単位で状態を保持することだ。
Spacesにはアプリケーション毎に、表示されるデスクトップを固定する機能が備わっている。これは状態を崩さないための機能として有用だ。現状の仮想デスクトップ環境では最も優れているものの一つといえるだろう。初心者が使うことを考えれば、これが妥当な解かもしれない。
だが、これでは足りない。少なくとも、僕には物足りない。アプリケーション毎では縛りがきつすぎるのだ。特に低解像度環境で何かを作っているとき、アプリケーション毎に縛られてしまうと不便を被ることがある。
例えば文書を作成しているとしよう。今一番必要としているアプリケーションはエディタだ。そして、情報を収集しながら文書を書くために、Webブラウザを並べて立ち上げている。それで表示領域はいっぱいだ。だが、以前受け取ったメールもまた、参考にしながら文書を作成している。残念ながら3つもアプリケーションを開けるほどの解像度がない。さぁ、仮想デスクトップの出番だ。今必要としている状態は、次の2つだ。
しかし、次のような状態を常に欲しているとしよう。
作業の邪魔にもなるため、これらのウィンドウを追いやっている人は少なくないはずだ。
しかし、仮想デスクトップ環境とは不思議なもので、概ね以下の2つの機能しか有していない。
残念ながら、2つ以上の任意のデスクトップへ同じウィンドウを表示させることはできない。従って多くの仮想デスクトップ環境は、このようなケースに対応できないこととなる。何かが間違っているとしか思えないのだが、多くの仮想デスクトップ環境はそれが仕様となっている。不思議としか言いようがない。
高解像度環境では、このようなケースをきちんと処理することができる。そのことを図で示そう。少々見苦しい図だが勘弁願いたい。
今回の例ではエディタを真ん中に置き、両側にブラウザとメーラーを配置することで複数の状態に同じアプリケーションを利用することができる。それらから離れた位置にチャットウィンドウを配置することで、作業の邪魔となることを無意識的に避けている。このようなモデルを目的を見失ってしまった現状の仮想デスクトップ環境では実現できないのだ。
状態を単純に保持できるわけがないのだ。ある状態にアプリケーションが必要か否かを判断することはできても、アプリケーションと状態を一対一対応させることなんてできやしない。
そこで生まれる発想は、一対多対応の実現方法として今主流となりつつあるタグ管理だ。タグであれば、アプリケーションを任意に状態と紐づけることができる。必要なくなった状態は、タグを取り払うだけで即座に削除できる。一文字のタグを定義すると、適当なキーボードショートカットが自動的に割り当てられる、などといった実装があればなお便利だろう。
ここまで触れてこなかったが、仮想デスクトップ環境には前もって必要なデスクトップ数を定義せねばならないという理不尽な仕様が存在する。そんなもの前もって設定できるわけがないのに、やたら変更は面倒だったりするのだ。しかし、状態をタグで管理することによって、必要となる状態の数を前もって定義する必要もなくなる。必要になったときにタグを付け、必要なくなったらタグを消すだけだ。
仮想デスクトップ環境がデスクトップの面積を広げる必要はない。タグで管理するなどして、状態を保持するだけで良いのだ。
awesomeというタイル型ウィンドウマネージャがある。これは僕が知る中で唯一タグ管理を実現している環境だ。ここに書いたことは決して新しい事ではないのだ。なぜタグ管理が広まらないのか不思議でならない。
あまり初心者が居ないと思われるLinuxのデスクトップ環境、FluxboxやKDEの仮想デスクトップ環境こそ、積極的にこういった拡張を行って欲しい。
ユーザがあまりに多すぎたり、広範にわたっていると保守的にならざるを得ない部分もある。仮想デスクトップが面積を広げることを模していれば学習コストを下げることができるのは明らかで、Spacesは無難な妥協点を見いだしたように思う。でも、Linuxのデスクトップ環境であればできると思うのだ。そういった理想的環境が標準で利用可能であることに意義がある。実装される日が来るのだろうか。来て欲しいなぁ。