Arch Linux - GUI 構築に必要なもの

GUI を構成するのに必要なもの
GUI 環境を自分でカスタマイズしたい場合は、何が必要になるかを理解しておく必要があります。
ディスプレイサーバー
GUI にとって一番基礎となるものです。
アプリケーションは、ディスプレイサーバーが実装している API を使って、ウィンドウを表示したりします。

今までは「X Window System (X11)」が使われてきましたが、古くからあるものを無理に機能拡張して使ってきたため、実装に限界が来ている状態なので、新しく「Wayland」が開発されました。

2022 年現在では、まだ X11 から完全に移行できるだけの状態ではありませんが、今後はデフォルトになっていくものと思われます。

# Xorg - ArchWiki
# Wayland - ArchWiki
GUI ツールキット
アプリケーションは、ディスプレイサーバーの API を使って GUI を構築しますが、ディスプレイサーバーでは、メニューやボタンなどの各 GUI 部品は実装されていないため、それらはアプリ側が自分で実装することになります。

しかし、各開発者が各々でそれらを実装するのは手間がかかる上、外観に統一性がなくなるので、GUI の開発が簡単にできるように、様々な機能をまとめてライブラリにしたのが、GUI ツールキットです。

現在は、多くのアプリが GTK+Qt で開発されています。
他にもいくつかマイナーなものもあります。
ディスプレイマネージャ
ユーザーのログインや、ウィンドウマネージャ(デスクトップ)の選択などを行うためのもので、Linux 起動後に一番最初に表示される GUI 画面となります。

# ディスプレイマネージャ - ArchWiki
ウィンドウマネージャ
タイトルバーや枠などのウィンドウ外観や、デスクトップにおけるウィンドウの操作・動作などを実装するのが、ウィンドウマネージャです。
デスクトップの外観や機能性を決める上で、一番重要になります。

# ウィンドウマネージャ - ArchWiki
壁紙
デスクトップの背景を表示するためのものです。

X11 上で、背景を1色の塗りつぶしにしたい場合は、xorg-xsetroot をインストールした上で、
~/.xinitrc などで「xsetroot -solid "#505070" &」といったように記述します。
(色の指定時に " " がないと、# がシェルのコメントとして扱われるので注意)

# 壁紙設定
タスクバー
メニューボタン、簡易ランチャー、ウィンドウ一覧、時計、システムトレイなどを表示するバーです。
必要な場合はインストールします。

# タスクバー・パネル・ドック
ランチャー
頻繁に使用するアプリのアイコンを置いたりして、簡単に起動できるようにするものです。
タスクバーを置かずに、ランチャーだけ置くといったこともできます。

# アプリケーションランチャー
日本語 IM
日本語入力を行う場合は、インプットメソッドが必要になります。
現在では、Fcitx + Mozc を使うのが一般的です。

# 国際化 - ArchWiki
クリップボードマネージャ
クリップボードの機能自体は、X11 や Wayland のディスプレイサーバー側で実装がされていますが、これは基本的にアプリ間でのやりとりとなります。

クリップボードのデータは、アプリが保持する形になっているので、データを保持している側と、データを貼り付けたい側で、データをやりとりすることになります。
そのため、保持している側のアプリが終了すると、その後はデータの貼り付けができなくなります。

別途クリップボードマネージャのアプリが存在するか、デスクトップ自体がクリップボードマネージャの機能を実装している場合は、コピーされたデータはマネージャ側が保持するため、普通のクリップボードと同じように使うことができます。

ただし、クリップボードマネージャがなくても、起動しているアプリ間でのコピー&ペーストはできるので、必要なければ、なくても構いません。

# クリップボード - ArchWiki