Linux 上でデスクトップ環境を自分で構築していくのであれば、以下の観点で選ぶのがよい。
この 2 つの条件を満たすディストリビューションが以下の 2 つである。
base
) をインストールしていく。ArchWiki は Arch Linux の wiki だが OS の留まらずあらゆるプログラムの日本語ヘルプも提供している。特に便利な設定のスニペットや他のパッケージとの協調設定に関する情報が多い。Linux を使っていく上で困ったときは、まず公式マニュアルや Man ページを見て、それでも解決しない場合は ArchWiki を見るといい。
Linux のデスクトップ環境は以下の要素で構成される。
ユーザセッションを開始し、指定したスタートアッププログラムを起動するためのプログラム。(e.g. GDM, LightDM) 要するにログイン画面を表示してログイン処理を行うプログラムである。必須ではない。
ユーザセッション開始前に呼び出されるこのプログラムだけは必ず system-wide にインストールする必要がある。
ディスプレイマネージャを使わない場合はセッション開始後にシェルが表示されるので、スタートアッププログラムを起動する場合はインタラクティブシェルの設定 ( .bashrc
, .zshrc
) に記述する。
# グラフィカルセッションの中でなければ X サーバを起動する
if [[ -z "$DISPLAY" && "$XDG_VTNR" == 1 ]]; then
exec startx
fi
グラフィカルセッションを開始するためのプログラム。(e.g. startx, xinit) デスクトップ環境を含むグラフィカルなプログラムを開始するためにはディスプレイマネージャの上で起動する必要がある。
ウィンドウを管理するためのプログラム。(e.g. Xmonad, i3) ウィンドウシステムの操作感はウィンドウマネージャで決まる。
私のオススメは Xmonad である。Xmonad は、Haskell というあまり馴染みのない言語ではあるが、 設定ではなくウィンドウマネージャの実行プログラムそのものを記述する という点で他のウィンドウマネージャと異なり、カスタマイズの自由度も高い。Xmonad やその他のプログラムを組み合わせて利便性の高いデスクトップ環境を作成する方法は別記事で解説する。
ウィンドウを透過したりドロップシャドウを加えるためのプログラム。(e.g. Picom) Xorg のウィンドウマネージャなどウィンドウの合成機能が含まれていないウィンドウマネージャを使う場合に向いている。必須ではない。
特定のディスプレイマネージャに依存しないスタンドアロンなコンポジットマネージャといえば、今の所 Picom 一択だろう。Xcompmgr からフォークし多くのバグ修正を加えたものが compton であり、更に compton からフォークしたものが Picom である。
ディスプレイマネージャではグラフィカルセッション開始と同時に起動するプログラムを指定する。このプログラムが終了したときセッションが終了されグラフィカルセッションからログアウトされる。 xinit
, startx
での初期設定は xterm
というターミナルプログラムである。つまり初期設定ではグラフィカルセッション開始時に存在する xterm
のウィンドウを終了するとセッションからログアウトされてしまう。通常はここにウィンドウマネージャのプログラムを設定する。ウィンドウマネージャは異常終了を除くとユーザが終了要求した場合のみ終了するので、ユーザはウィンドウマネージャを終了することによってグラフィカルセッションからログアウトできる。
GNOME スイートはかなり密結合でディスプレイマネージャからウィンドウマネージャ, コンポジットマネージャ, 一部の GNOME ソフトウェアまでが密結合である。特に GNOME3 ではその性質が非常に強くなっている。また GNOME 独自のバックエンドシステムサービスも存在するのでこの辺りも別記事で解説する。
Linux をインストールした後に最初にやるべきことは「ググれる環境をつくる」ことである。グラフィカルなプログラムを実行するためのディスプレイマネージャ xinit と Chromium をインストールする。
sudo pacman -S xorg-xinit chromium
alt-shift-Return で新しい xterm プロセスを開いて、とりあえずシェルから Chromium を起動する。
chromium
Linux を使っていて唯一不便に思うのはグラフィカルなアプリケーションが少ないことだ。
この問題はネイティブアプリケーションのように使える Web アプリ, PWA の登場により徐々に解消されていくだろう。しかし今の段階では、例えばメールクライアント 1 つ挙げても、どのアプリケーションも使いやすさで Windows や macOS の標準メールクライアントに劣る。電子書籍リーダにしても同様で、私が普段使っている Kindle は Linux 版がないので 「試して理解 Linux のしくみ」という書籍が Linux で読めない。 (DRM の都合上 Kindle Cloud Reader では読めない書籍が多い)
デスクトップ環境は仕事でもプライベートでも使うので、設定をクラウド上に保存しつつ、自分に用途に合わせて現状の不満点を少しずつ改善することができれば、普段の生活を快適にすることができる。つまりデスクトップ環境構築はライフハックだ。
この記事は Linux を普段使いするメリットと Linux 上でカスタマイズ可能なデスクトップ環境を構築するために必要な要素について解説した。実際に自分好みのデスクトップ環境を構築していく手順を設定ファイルのソースコードを交えて別記事に書こうと思う。