解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

デスクトップ環境と、GUIツールキット

いくらUNIXGNUのユーザでも、コンソールやフレームバッファだけで完結させるEmacsユーザのような硬派な人は多くはありません。かなりの人がGUIを用いています。(ましてや Vim だとかは、Emacsと異なりあくまでもテキストエディタですから、 GVimGUI の人はたくさんいるはずです。)

GNU/LinuxGUI には、desktop environment (DE)、いわゆる「デスクトップ環境」というものがあります。 つまりは、事務作業用のソフトウェアのセット(suite)とでもいうべきものです。 一般的には、パネルやメニュー、ファイルマネージャ、テキストエディタやメディアプレイヤーなどのアプリケーション・ソフトウェアが含まれています。

よく知られているDEとしては、 GNOMEKDEXfce など があります。

さて、GUIソフトウェアは、グラフィカルなユーザインターフェイス(UI)を用意せねばなりません。 そのとき、最初から創るという方法もありますが、その場合には、手間暇がかかるうえに、ほかのソフトウェアのUIとは統一されず、みなバラバラに創られてしまいます。

そこで、GUIツールキットというものがまた、あります。 その二大ツールキットとでもいうべき2つは、GTK+(GIMP ToolKit+)と、Qtです。 そして、GNOMEGTK+を、KDEはQtを、採用しています。

GTK+はその名の通りもともとは、有名なフォトレタッチ&ペイントソフトウェアであるGIMPのために創られました。 しかし今は、GNOMEのほか、多数のGUIソフトウェアが利用しています。

Qtは、北欧の携帯電話メーカーとして有名だったNokiaがつくっているツールキットです。 携帯端末のCPUやRAMや画面などのリソースは少ないわけですが、そうしたハードウェアでも動かせるように設計されています。

デスクトップ環境やGUIツールキットのバージョンアップ

さて、DEは、ツールキットを採用したら、そのツールキットのバージョンアップにもついていかねばならなくなります。 また、GNOMEGTK+と、KDEはQtと、歩調を合わせて製作が進められ、バージョンアップも相互に合わせて進められています。

そこで例えば近年に、GTK+のバージョンが2から3に上がったり、Qtのバージョンが4から5に上がったりしました。 そのときに、GNOME2からGNOME Shell(3に相当)に、KDEは4から5に上がっています。

ところで、20年前にマイクロソフト Windows 95 (Chicago)が「すべてはスタートメニューからはじまります」というUIを普及させて以来は、多くのウインドウマネージャ(WM)やDEもこのUIを真似し、パネル(Windowsにおけるタスクバー)とメニューボタンというUIが慣例になっています。 (昔のWindowsは「プログラムマネージャ」からアイコンをダブルクリックして起動していました。また、GNUUNIXの昔のWMのUIも一様ではありませんでした。) たとえMacOS風にしたとしても、MacOS 9以前はバーが上にあるくらいでそんなに奇異なものではなかった記憶があります。

しかし近年は、タッチパネル式で操作するいわゆる「タブレットPC」や「スマートフォン」という形態が普及してきたのもあって、UIの大幅な改変が進んできました。 タッチ操作に合わせたアプリケーションランチャが採用され始めました。 大きなアイコンボタンで、起動頻度の高いものを優先して表示したり、検索欄に文字入力をしてソフトウェアを検索して起動させたりするUIです。

また、ハードウェア性能の向上で、グラフィックチップの3D処理機能を利用したアニメーションや透明化表示も広まりました。

こうした動向の先駆としては、UbuntuのデフォルトDEである「Unity」がその典型です。

GNOME のフォーク、MATE と Cinnamon

そして、GNOME Shellも同様に、タッチ操作向きのUIになり、アニメーション表示でぬるぬる動くようになりました。 そしてGTK+も、2から3にバージョンアップしたわけです。

このときに、UIの大幅変更や、ハードウェア負荷増大が苦痛になった人々がたくさん出ました。

その際に、GNOME 2をもとに改変した「MATE」や、GNOME Shellを改変して慣例的なUIを導入した「Cinnamon」が登場したわけです。 ですから、MATEはGTK+ 2ベースで、CinnamonはGTK+ 3ベースです。

もともとのMATEを始めた人は Arch Linuxのユーザだったそうですが、その後のデヴェロッパはすっかり入れ替わってしまったようですし、MATEは、ArchLinuxとの協力関係はそれほどありません。

他方のCinnamonは、UbuntuをもとにしたディストリビューションであるLinux Mintのプロジェクトの一つです。

余儀なくされる GTK+ 3 化

さてしかし、GTK+ は3にバージョンアップしたわけで、2は廃止されるわけです。メンテナンスされなくなるということです。

したがって、いま GTK+ 2 を使っているDEも、対応を余儀なくされます。

そこで、例えば XfceGTK+ 2だったんですが、GTK+ 3に対応しました。

MATEはいま、GTK+ 3への移行中です。将来的にはGTK+ 2対応を廃止する予定です。

LXDE と LXQt

ほかに、いわゆる「軽量デスクトップ環境」として知られる「LXDE」があります。これは、ウインドウマネージャにOpenboxを借用して、コンポーネントを追加したDEです。 LXDEGTK+ 2なのですが、「GTK+3に移行したら重くなる」ということで、Qt5 への移行をまず試み、LXDE-Qt というプロジェクトをはじめました。

そこに、同じくOpenboxを借用した、Qt4ベースの「Razor-qt」というDEがあり、Qt5への移行が必要でした。 そこで LXDE-Qt と Razor-qt の2つのプロジェクトが統合して、「LXQt」というDEが生まれました。

ところが、いざQt5にしてみたら思ったよりも重いということで、LXDEGTK+ 3対応化も鋭意進行中のようです。

余談

DEを使用せずに、WMと各種ソフトウェアをインストールして使う人も多いでしょう。 そもそものWMに古典的なものを使っている人は、UIの大々的変更とは無縁かもしれません。

Xmonadawesomei3のようなタイル型WMを使っている人も多くいます。

だから、パネルやメニューボタンなんてもともと使っていないという硬派な人も多くいます。 Openboxも背景を右クリックしてメニューを出します。 そもそもメニューなんて無くてターミナルエミュレータから起動すればいいだろと言う人もいます。

ターミナルエミュレータでなくとも、ランナー(runner)、つまり、コマンドを入力して実行するヘルパーソフトウェアを使っている人もいますし、少なからぬDEもアップレットなどでランナー機能をもっています。 ちなみに、gmrun がおすすめです。 キーボード・ショートカットを割り当てれば、キーボード操作だけでコマンドを実行可能なようになりますから。

ただGUIソフトウェアの多くは、GTK+かQtを利用しています。 GUIを利用しているかぎりは、GUIツールキットの仕様変更とは無縁ではいられません。それはまた間接的には、これらツールキットとほとんど一体になっているGNOMEKDEの動向の影響も受けるということです。


この投稿は、qiita.com 3日めの記事です。