9.LinuxGUIとデスクトップ
9.1. LinuxのGUI
9.1.1. X windows System(X, X11)
X Windows Systemは多くのUNIXやLinuxで使用されているウィンドウシステム(GUI)。 X Window Systemではクライアント・サーバ方式(Xクライアント, Xサーバ)の構成となっている。 このGUIシステムは現在のコンピュータ環境で利用するには無理が出てきている。
X windows Systemの種類
| 種類 | 説明 | 
|---|---|
| XFree86 | かつて標準実装されていた | 
| X.Org | 現在の主流 | 
Xサーバ
Xサーバはモニター、ビデオカード、キーボードなどのハードウェアの管理を行う。 ホストマシンで稼働する。
xサーバはstartxコマンドできそうできる。
なお実行の際はxinitが実行され/etc/X11/xinit/xinitrcスクリプトが実行される。
Xクライアント
XクライアントはWebブラウザなどのユーザアプリケーションを指す。 リモートホストで動かすことができるが、Xサーバと同じマシンで動かすことも可能。
X.Orgの設定
X.Orgの設定ファイルは/etc/X11/xorg.confとなりキーボード、ディスプレイ、フォント、解像度などの設定が可能。
xorg.confファイルは複数のセクションから構成される。
| セクション | 説明 | 
|---|---|
| ServerLayout | 入力 ・ 出力用デバイスの組み合わせとスクリーンの設定 | 
| Files | フォント関連のパスの設定 | 
| Module | Xサーバがロード予定のダイナミックモジュールの設定 | 
| InputDevice | Xサーバに対する入力デバイス(キーボード等)の設定 | 
| Monitor | システムにより使用されるモニタタイプの設定 | 
| Device | システム用のビデオカードの設定 | 
| Screen | ディスプレイの色深度と画面サイズの設定 | 
Xクライアントコマンド
X Window Systemの設定確認、情報収集のためのコマンドは以下の通り。
| コマンド | 説明 | 
|---|---|
| showrgb | X Window Systemで利用可能な色とRGB値の情報確認 | 
| xlsclients | 実行中のXクライアントを表示 | 
| xwininfo | コマンド実行後に指定したウィンドウのサイズ、位置、色深度の情報確認 | 
| xdpyinfo | ディスプレイ情報の表示 | 
9.1.2. Wayland
Waylandはプロトコル作成フレームワークでLinux用ライブラリ。 X11と全く異なる仕組みでGUI環境を提供できる。
ウィンドウマネージャとクライアントで構成される。
ウィンドウマネージャ
ハードウェアやグラフィックを管理する。
クライアント
グラフィックライブラリ呼び出す。
9.2. グラフィカルデスクトップ
9.2.1. ディスプレイマネージャ
ディスプレイマネージャはXサーバを起動して GUI のログイン画面を表示する仕組み。 ランレベル5で起動する。
具体的にはGUIでログイン画面を表示し、ユーザー認証を行う。 有名なものは以下の通り。
- XDM … XDMはX.Orgの標準。認証プロトコルにはXDMCPが使用される。
- KDM … KDMはKDEで利用される
- GDM … GDMはGNOMEで利用される
9.2.2. ウィンドウマネージャ
ウィンドウマネージャはXの外観制御を行う。 ウィンドウの外観、アイコン、メニューなどを提供しユーザが設定できるようになっている。
代表的なものには以下のようなものがある。
- Metacity … Gnome標準のウィンドウマネージャ
- Kwin … KDE標準のウィンドウマネージャ
- twm … 必要最低限の機能だけを備えたウィンドウマネージャ
- fvwm … 仮想デスクトップ機能を備えたウィンドウマネージャ
- enlightment … 高機能でグラフィカルなウィンドウマネージャ
9.2.3. デスクトップ環境
デスクトップではウィンドウマネージャも含め、アプリケーションまで揃えて統一的な操作を提供する。 代表的なものにはGNOME、KDE Plasmaなどがある。他にはXfceやLXDEなどがある。
| GNOME | KDE Plasma | |
|---|---|---|
| テキストエディタ | gedit | KEdit | 
| 端末 | GNOME端末 | Konsole | 
| ファイルマネージャ | Nautilus | Dolphin | 
| GUIツールキット | GTK+ | Qt | 
| ディスプレイマネージャ | GDM | SDDM | 
| ウィンドウマネージャ | Mutter | KWin | 
| 標準採用 | RedHat, CentOS, Fedora, Ubuntu | openSUSE, Slackware, Kubuntu | 
9.2.4. リモートデスクトップ
リモートデスクトップは別のマシン上からリモートで別のマシンのデスクトップを操作できるもの。 Linux向けに制御する機能にはVNC、RDP、SPICE、XDMCPなどがある。
VNC
VNCはクロスプラットフォームのリモートデスクトップソフトウェア。 対応OSはWindows、macOS、Linux。
vncserver :1 #VNCサーバをディスプレイ番号1で起動する
vncserver -kill :1 #VNCサーバの終了RDP
RDPはWindows標準搭載のリモートデスクトッププロトコル。 Linuxデスクトップ上にWindowsのデスクトップを表示可能。
SPICE
SPICEはOSSの画面転送プロトコルで以下の機能に対応している。
- 通信の暗号化
- マルチモニタ
XDMCP
XDMCPはディスプレイマネージャをネットワーク越しに利用できるプロトコル。 Xサーバとディスプレイマネージャとの間で使われるが、暗号化機能がないためSSH接続で利用する必要がある。
9.3. アクセシビリティ
アクセシビリティはコンピュータの操作の利便性を上げるもの。 障がい者の操作をサポートするソフトウェアはATと呼ばれる。
9.3.1. アクセシビリティの設定
アクセシビリティの設定は以下のようなものがある。
| 機能 | 説明 | 
|---|---|
| スティッキーキー(固定キー) | 複数キーを同時に押すのが困難なユーザー向けの機能 | 
| スローキー | 正確にキーを入力できないユーザー向けの機能 | 
| バウンスキー | 連続入力を無視する機能 | 
| トグルキー | 光るキーの視認が難しいユーザー向けの機能。音が鳴る | 
| マウスキー | マウスを扱うのが困難なユーザー向けの機能 |