X Window System ( 1 )

June 05, 2018

X Window System とは

Linux/UNIX では GUI を実現するために、X Window System(X, X11) が用いられている。
X はネットワークでの利用を想定しているため、クライアント/サーバ方式を採用している。X サーバはモニタ/ビデオカード/キーボードなどのハードウェアの管理を行う。一方 X クライアントはユーザーアプリケーションで、Web ブラウザやオフィスアプリケーションなどが相当する。
つまり、X サーバは X クライアントにグラフィカルなインターフェイスを提供するものである。X サーバ/クライアントは同一のコンピュータ上で動作していても、異なるコンピュータで動作していても構わない。

X.Org の設定

X.Org の設定は /etc/X11/xorg.conf もしくは /etc/X11/xorg.conf.d 配下のファイルで行う。(現在は手動で設定する必要はほぼない)

$ cat /etc/X11/xorg.conf.d/00-keyboard.conf   
# Read and parsed by systemd-localed. It's probably wise not to edit this file  
# manually too freely.  
Section "InputClass"  
        Identifier "system-keyboard"  
        MatchIsKeyboard "on"  
        Option "XkbLayout" "us"  
EndSection  

設定ファイルは複数のセクションから構成されており、セクションは「Section “セクション名”」から「EndSection」までのあ範囲に、それぞれの用途毎の設定が記述される。

セクション 説明
Files フォントやカラーデータベースファイルのパス名
Modules ダイナミックモジュールの設定
InputDevice キーボードやマウスなどの入力装置の設定
InputClass 入力装置の「クラス」に適用される設定
Device ビデオカードの設定
Monitor モニターの設定
Modes ビデオモードの設定
Screen ディスプレイの色深度や画面サイズの設定
ServerLayout 入出力デバイスとスクリーンの指定

X.Org の設定ファイルは難解なので、設定を補助するツールも用意されている。ハードウェアをスキャンして xorg.conf ファイルを自動生成するには次のコマンドを利用する。

$ sudo Xorg -configure  
  
X.Org X Server 1.19.3  
Release Date: 2017-03-15  
X Protocol Version 11, Revision 0  
Build Operating System:  3.10.0-514.16.1.el7.x86_64   
Current Operating System: Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64  
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-693.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8  
Build Date: 05 August 2017  06:19:43AM  
Build ID: xorg-x11-server 1.19.3-11.el7   
  
...  
  
(++) Using config file: "/root/xorg.conf.new"  
(==) Using config directory: "/etc/X11/xorg.conf.d"  
(==) Using system config directory "/usr/share/X11/xorg.conf.d"  

上記の場合 /root/xorg.conf.new が生成される。

$ sudo cat /root/xorg.conf.new | head -20  
Section "ServerLayout"  
	Identifier     "X.org Configured"  
	Screen      0  "Screen0" 0 0  
	InputDevice    "Mouse0" "CorePointer"  
	InputDevice    "Keyboard0" "CoreKeyboard"  
EndSection  
  
Section "Files"  
	ModulePath   "/usr/lib64/xorg/modules"  
	FontPath     "catalogue:/etc/X11/fontpath.d"  
	FontPath     "built-ins"  
EndSection  
  
Section "Module"  
	Load  "glx"  
EndSection  
  
Section "InputDevice"  
	Identifier  "Keyboard0"  
	Driver      "kbd"  

生成したファイルを用いてテストを実施するには以下のコマンドを実行する。

$ sudo X -config /root/xorg.conf.new  

 © 2023, Dealing with Ambiguity