GUI を構成するのに必要なもの
GUI 環境を自分でカスタマイズしたい場合は、何が必要になるかを理解しておく必要があります。
ディスプレイサーバー
GUI にとって一番基礎となるものです。
アプリケーションは、ディスプレイサーバーが実装している API を使って、ウィンドウを表示したりします。
今までは「X Window System (X11)」が使われてきましたが、古くからあるものを無理に機能拡張して使ってきたため、実装に限界が来ている状態なので、新しく「Wayland」が開発されました。
2022 年現在では、まだ X11 から完全に移行できるだけの状態ではありませんが、今後はデフォルトになっていくものと思われます。
# Xorg - ArchWiki
# Wayland - ArchWiki
アプリケーションは、ディスプレイサーバーが実装している API を使って、ウィンドウを表示したりします。
今までは「X Window System (X11)」が使われてきましたが、古くからあるものを無理に機能拡張して使ってきたため、実装に限界が来ている状態なので、新しく「Wayland」が開発されました。
2022 年現在では、まだ X11 から完全に移行できるだけの状態ではありませんが、今後はデフォルトになっていくものと思われます。
# Xorg - ArchWiki
# Wayland - ArchWiki
GUI ツールキット
アプリケーションは、ディスプレイサーバーの API を使って GUI を構築しますが、ディスプレイサーバーでは、メニューやボタンなどの各 GUI 部品は実装されていないため、それらはアプリ側が自分で実装することになります。
しかし、各開発者が各々でそれらを実装するのは手間がかかる上、外観に統一性がなくなるので、GUI の開発が簡単にできるように、様々な機能をまとめてライブラリにしたのが、GUI ツールキットです。
現在は、多くのアプリが GTK+ か Qt で開発されています。
他にもいくつかマイナーなものもあります。
しかし、各開発者が各々でそれらを実装するのは手間がかかる上、外観に統一性がなくなるので、GUI の開発が簡単にできるように、様々な機能をまとめてライブラリにしたのが、GUI ツールキットです。
現在は、多くのアプリが GTK+ か Qt で開発されています。
他にもいくつかマイナーなものもあります。
ディスプレイマネージャ
ユーザーのログインや、ウィンドウマネージャ(デスクトップ)の選択などを行うためのもので、Linux 起動後に一番最初に表示される GUI 画面となります。
# ディスプレイマネージャ - ArchWiki
# ディスプレイマネージャ - ArchWiki
ウィンドウマネージャ
タイトルバーや枠などのウィンドウ外観や、デスクトップにおけるウィンドウの操作・動作などを実装するのが、ウィンドウマネージャです。
デスクトップの外観や機能性を決める上で、一番重要になります。
# ウィンドウマネージャ - ArchWiki
デスクトップの外観や機能性を決める上で、一番重要になります。
# ウィンドウマネージャ - ArchWiki
壁紙
デスクトップの背景を表示するためのものです。
X11 上で、背景を1色の塗りつぶしにしたい場合は、xorg-xsetroot をインストールした上で、
~/.xinitrc などで「xsetroot -solid "#505070" &」といったように記述します。
(色の指定時に " " がないと、# がシェルのコメントとして扱われるので注意)
# 壁紙設定
X11 上で、背景を1色の塗りつぶしにしたい場合は、xorg-xsetroot をインストールした上で、
~/.xinitrc などで「xsetroot -solid "#505070" &」といったように記述します。
(色の指定時に " " がないと、# がシェルのコメントとして扱われるので注意)
# 壁紙設定
タスクバー
ランチャー
日本語 IM
クリップボードマネージャ
クリップボードの機能自体は、X11 や Wayland のディスプレイサーバー側で実装がされていますが、これは基本的にアプリ間でのやりとりとなります。
クリップボードのデータは、アプリが保持する形になっているので、データを保持している側と、データを貼り付けたい側で、データをやりとりすることになります。
そのため、保持している側のアプリが終了すると、その後はデータの貼り付けができなくなります。
別途クリップボードマネージャのアプリが存在するか、デスクトップ自体がクリップボードマネージャの機能を実装している場合は、コピーされたデータはマネージャ側が保持するため、普通のクリップボードと同じように使うことができます。
ただし、クリップボードマネージャがなくても、起動しているアプリ間でのコピー&ペーストはできるので、必要なければ、なくても構いません。
# クリップボード - ArchWiki
クリップボードのデータは、アプリが保持する形になっているので、データを保持している側と、データを貼り付けたい側で、データをやりとりすることになります。
そのため、保持している側のアプリが終了すると、その後はデータの貼り付けができなくなります。
別途クリップボードマネージャのアプリが存在するか、デスクトップ自体がクリップボードマネージャの機能を実装している場合は、コピーされたデータはマネージャ側が保持するため、普通のクリップボードと同じように使うことができます。
ただし、クリップボードマネージャがなくても、起動しているアプリ間でのコピー&ペーストはできるので、必要なければ、なくても構いません。
# クリップボード - ArchWiki