ネットワーク経由での X の利用
X はネットワーク経由で利用ができる。X サーバが稼働しているのとは別のコンピュータで動作している X クライアントを表示し、操作する、ということが可能。
なおこの場合、X サーバはディスプレイへの出力を管理している。つまり、ローカルな PC が X “サーバ” となり、リモートの X “クライアント” (Web ブラウザ等) をローカルなディスプレイ上に表示させることになる。
一般的なクライアント/サーバの配置とは逆になる点に注意。
X クライアントが X サーバを利用できるように許可を与えるには xhost コマンドを使用する。xhost は X サーバへのアクセス制御を調整するコマンドであり、+ オプションで許可するホストを、- オプションで許可を取り消すホストを指定する。
まず最初に remotepc の X クライアントが localpc の X サーバを利用できるように許可を与える。
[user@localpc]$ xhost +remotepc
次に remotepc の環境変数 DISPLAY で X サーバを指定し、export する。
[user@remotepc]$ DISPLAY=localpc:0
[user@remotepc]$ export DISPLAY
X クライアントコマンド
X Window System 上で設定を確認したり、さまざまな情報を集めるためのコマンドが用意されている。
X で利用可能な色と RGB 値は showrgb コマンドで調べることができる。
$ showrgb | head -10
255 250 250 snow
248 248 255 ghost white
248 248 255 GhostWhite
245 245 245 white smoke
245 245 245 WhiteSmoke
220 220 220 gainsboro
255 250 240 floral white
255 250 240 FloralWhite
253 245 230 old lace
253 245 230 OldLace
xlsclients コマンドにより、実行中の X クライアントを表示可能。
$ xlsclients
Ubuntu-SSD firefox
Ubuntu-SSD /usr/lib/firefox/firefox
Ubuntu-SSD /usr/lib/firefox/firefox
xwininfo により、指定したウィンドウのサイズや位置、色深度などの情報を取得可能。
$ xwininfo
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x600010 "Mozilla Firefox"
Absolute upper-left X: 3840
Absolute upper-left Y: 23
Relative upper-left X: 0
Relative upper-left Y: 22
Width: 864
Height: 566
Depth: 24
Visual: 0xed
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x600002 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +3840+23 -416+23 -416-469 +3840-469
-geometry 864x566+3840+1
xdpyinfo コマンドにより、ディスプレイ情報を表示可能。
$ xdpyinfo | head -20
name of display: /private/tmp/com.apple.launchd.asqEtm2Zyd/org.macosforge.xquartz:0
version number: 11.0
vendor string: The X.Org Foundation
vendor release number: 11804000
X.Org version: 1.18.4
maximum request size: 16777212 bytes
motion buffer size: 256
bitmap unit, bit order, padding: 32, LSBFirst, 32
image byte order: LSBFirst
number of supported pixmap formats: 7
supported pixmap formats:
depth 1, bits_per_pixel 1, scanline_pad 32
depth 4, bits_per_pixel 8, scanline_pad 32
depth 8, bits_per_pixel 8, scanline_pad 32
depth 15, bits_per_pixel 16, scanline_pad 32
depth 16, bits_per_pixel 16, scanline_pad 32
depth 24, bits_per_pixel 32, scanline_pad 32
depth 32, bits_per_pixel 32, scanline_pad 32
keycode range: minimum 8, maximum 255
focus: None
X サーバの起動
コンソール画面にて startx を実行すると、以下の流れで X Windows System が起動する。
- startx コマンド
- xinit コマンド
- ~/.xinitrc もしくは /etc/X11/xinit/xinitrc
3.1. ~/.initrc の場合 /etc/X11/xinit/xinitrc.d 以下のスクリプトが実行される
3.2. /etc/X11/xinit/xinitrc の場合、~/.xsession または ~/.Xclients または /etc/X11/xinit/Xclients が実行され、GNOME/KDE/ウィンドウマネージャに処理が移行