X Window System ( 2 )

June 05, 2018

ネットワーク経由での 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 が起動する。

  1. startx コマンド
  2. xinit コマンド
  3. ~/.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/ウィンドウマネージャに処理が移行

 © 2023, Dealing with Ambiguity