デスクトップ環境の作り方


なぜ作り方を知っておくと良いのか

雑な言い方をしてしまえば、GNOMEやKDEまたはXfce4のような統合デスクトップ環境を使うのが一番手っ取り早いし機能も豊富だと思われます。一方でこれらの「てんこ盛り」な環境をインストールしても、たいしてUnixの訓練にはなりません。なぜならインストール方法や使い方が簡単すぎて特にこれといって知識やノウハウを習得できないからです(当然、使い方が簡単すぎるというのは技術やUIの偉大な進歩の結果であります)。

日常生活で使うに耐えうるデスクトップ環境を作る方法を学ぶには、統合デスクトップ環境をインストールするよりも、ひとつひとつパッケージをインストールして設定する他ありません。また稀なケースとして、マシンスペックがあまりにも低すぎてXfce4ですらまともに動かないケースも無くはないでしょう。そのような事態に直面したとき、統合デスクトップ環境以外を知らなければ話になりません。

ある程度デスクトップ環境の作り方を把握し、デスクトップ環境の要素を抑えておけばいざというときに役に立ちます。そのいざというときは前述したような極限環境下で作業せざるを得ないときかもしれませんし、最小構成でインストールされたGNU/Linuxの上でデスクトップ環境を作りたくなったときとか、そもそもインストーラがデスクトップ環境を提供していないOSを使うときかもしれません。

GUI環境に必要なソフトウェア

「デスクトップ環境」になにが必要であるかはユーザに強く依存します。Webブラウザさえあれば十分というユーザもいれば、動画編集ソフトウェアが不可欠なユーザも考えられます。様々なニーズをすべて包括したデスクトップ環境を用意するのは難しいので、ここではマウスを使ってウィンドウを自在に動かせられるグラフィカルな環境(GUI)を用意するには、なにをどのようにインストールすればいいのかのみ説明する。

NetBSDのX

NetBSDではGUI環境のために"X11"と呼ばれるソフトウェアを使います。FreeBSDと違いNetBSD 8.0ではベースシステムでX11が提供されています。以下のtarballをインストール時に選択するか、FTPサーバからダウンロードしてルートディレクトリに展開してください。

X11はサーバとクライアントが分離しており、Xサーバが動くマシン上でXクライアントのソフトウェア(FirefoxやThunderbirdなど)が描画されるシステムになっています。ここではクライアントとサーバ両方をインストールしていることになります。デスクトップ用途ではX11のサーバ・クライアントモデルを特別に意識することはありません。

/etc/X11/xorg.conf

xorg.conf(5)はXサーバの設定ファイルです。

もっとも、これをゼロから書くわけではありません。ユーザはxorg.conf(5)を自動で生成するXorg(1)-configureオプションを実行して、必要なときだけ設定ファイルを編集します。ディスプレイの拡張やマウスの設定を細かくしたいときに初めてエディタで開くことになるでしょう。

このコマンドを実行するとrootユーザのホームディレクトリにxorg.conf.newというファイルが作られます。それを/etc/X11ディレクトリの下に移動させます。

# X -configure
# mv /root/xorg.conf.new /etc/X11/xorg.conf

ウィンドウマネージャ

Xでは、このウィンドウの外見や操作性を提供しているのはウィンドウマネージャというプログラムです。デフォルトでは、TWMというウィンドウマネージャが動作しています。これをほかのものに変更したりカスタマイズしたりすることで、見違えるようなデスクトップ環境を作り出すことができます。なお、ここでいう「デスクトップ環境」とはウィンドウマネージャ単体ではなく、共通した外観や操作性を持ったアプリケーション群一体を指します。

FreeBSD徹底入門[改訂版], p296

ウィンドウマネージャは数え切れないほど多くの実装がありすべてを紹介するのは不可能です。本ページでは"i3"というタイル型ウィンドウマネージャをおすすめしますが、これは操作方法を覚えるのに少し時間がかかります。多くの人にとっては"JWM"や"Window Maker"といったスタック型ウィンドウマネージャが扱いやすいでしょう。ウィンドウマネージャのパッケージをひとつずつ試していって好みのものを模索してください。

$HOME/.xinitrc

xinitrcxinit(1)が読み込むスクリプトです。xinit(1)はXサーバを動かし、xinitrcで指定されているクライアントプログラムを実行します。これは各ユーザのホームディレクトリに隠しファイルとして置いておきます。xinitrcの内容はユーザがなにを使いたいかによって左右されるので、クライアントソフトウェアの解説をするとき設定方法のいち手順としてxinitrcになにを書くべきか説明されるのが一般的です。

たとえば僕が普段使っているデスクトップ環境の$HOME/.xinitrcは次の通りです。

#!/bin/sh

# Language
export LANG="ja_JP.UTF-8"

# Font
xset fp+ /usr/pkg/share/fonts/X11/TTF/

# No bell
xset b off

# Keybord layout
setxkbmap -model us -layout us -option ctrl:nocaps

# For inputmethod/ibus-mozc
export XMODIFIERS="@im=ibus"
export GTK_IM_MODULE="ibus"
export QT_IM_MODULE="ibus"
export DefaultIMModule="ibus"

# For i3-dmenu-desktop
export XDG_DATA_DIRS="/usr/pkg/share:$XDG_DATA_DIRS"

xmodmap $HOME/.Xmodmap
/usr/pkg/bin/ibus-daemon -drx
/usr/pkg/bin/i3

まとめ

グラフィカルな環境を用意するには最低限以下のものを用意します。

あとは必要に応じてソフトウェアをインストールしxinitrcを編集すればいいわけです。