読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】DISPLAY って何?X11 の X サーバーとクライアント、xorg.conf・xhost・xauth、ディスプレイマネージャと Wayland【LPICレベル1】

21レスカテゴリ:Linux
1: 名無しさん

ssh -X でつないで xclock を出したら、手元に時計が出た
アプリはサーバーで動いてるのに、画面は手元。どういうしくみなん

2: 名無しさん

前提のおさらい。SSH の X11 転送(ssh -X)は、サーバーで起動した GUI のアプリの画面を、SSH の中を通して手元に表示する。つないだ後の DISPLAY は localhost:10.0 のようになる

3: 名無しさん

>>1
X Window System(X11)では、画面とキーボードとマウスを持ってるほうが X サーバー、アプリが X クライアント
普通の「サーバーは遠く、クライアントは手元」と逆に見えるけど、手元の画面を提供するのが X サーバーやから、手元がサーバー

4: 名無しさん

>>3
アプリはどの X サーバーに出せばええか、どうやって知るん

5: 名無しさん

>>4
環境変数 DISPLAY。形は ホスト:ディスプレイ番号.スクリーン番号
:0:自分のマシンの0番(/tmp/.X11-unix/X0 のソケット)
192.0.2.10:0:別のマシンの0番。TCP なら6000番+ディスプレイ番号のポート
試したマシンは画面がないから、xhost は unable to open display "" やった

6: 名無しさん

>>5
ディスプレイ :1 なら TCP は

7: 名無しさん

>>5
今の X サーバーは、安全のために TCP では待ち受けない設定(-nolisten tcp)が多い。遠くから使うなら ssh -X が普通

8: 名無しさん

>>3
誰でも X サーバーにつなげたら危なくない?

9: 名無しさん

>>8
2つの方法で絞る
xhost:ホスト単位。xhost +192.0.2.10 で許可、xhost -192.0.2.10 で外す。xhost + は誰でも許してしまうから使わない
xauth:クッキー(合言葉)を持ってるクライアントだけ許す。~/.Xauthority に入ってて xauth list で見られる

10: 名無しさん

>>9
作業用のファイルで xauth -f xa add host/unix:0 MIT-MAGIC-COOKIE-1 … をしてから list したら、host/unix:0 MIT-MAGIC-COOKIE-1 <クッキー> の形で出た。ファイルは -rw-------。ssh -X はこれを自動でやってくれる

11: 名無しさん

X の設定ファイルはどこ?

12: 名無しさん

>>11
/etc/X11/xorg.conf と、分けて書く /etc/X11/xorg.conf.d/*.conf(Xorg の man)。今は自動で設定されるから、ないことも多い。Debian のパッケージには /usr/share/X11/xorg.conf.d/10-quirks.conf が入ってた
Xorg -configure で、見つけたハードウェアから xorg.conf.new のひな形を作れる。ログは /var/log/Xorg.0.log(0 はディスプレイ番号)

13: 名無しさん

>>12
中身はどう書くん

14: 名無しさん

>>13
Section "名前" 〜 EndSection のまとまり
ServerLayout(全体の組み合わせ)、Screen(画面)、Monitor(モニター)、Device(ビデオカード)、InputDevice・InputClass(キーボードやマウス)、Modes、Files、Module など
10-quirks.conf は InputClass で、特定の機器を Option "Ignore" "on" で無視する設定やった

15: 名無しさん

>>14
キーボードの配列を日本語にしたいときは?

16: 名無しさん

>>15
InputClass の中に Option "XkbLayout" "jp"。今の画面だけなら setxkbmap jp、systemd なら localectl set-x11-keymap jp

17: 名無しさん

ログイン画面とか、ウィンドウの枠とかは誰が出してるん

18: 名無しさん

>>17
ログイン画面がディスプレイマネージャ(GDM、SDDM、LightDM、XDM)。systemd では display-manager.service として起動する
ウィンドウの枠や移動・重なりを受け持つのがウィンドウマネージャ(KWin、Mutter、Openbox など)。それにパネルや設定アプリまでまとめたのがデスクトップ環境

19: 名無しさん

Wayland ってのも聞く

20: 名無しさん

>>19
X11 の後継の仕組み。Wayland ではコンポジタ(GNOME や KDE の画面を描くプログラム)が、X サーバーとウィンドウマネージャの両方の役をする。アプリは WAYLAND_DISPLAY でコンポジタにつながる
X11 用のアプリは XWayland の上で動く。xhost やネットワーク越しの表示といった X の考え方は、そのままでは使えない

21: 名無しさん

>>3
画面のあるほうが X サーバー、DISPLAY は ホスト:番号.スクリーン、許可は xhost か xauth、設定は xorg.conf と xorg.conf.d、ログイン画面は DM、枠は WM、後継は Wayland。手元がサーバーやったんか

管理人のひとこと