2013年2月
02/04
Xephyr
Xサーバをウィンドウ内で動かす。XDMCPを使わない場合は以下のような感じ。
Xephyr -ac -wr -screen 1024x768 :1 2>/dev/null
-acはアクセスコントロールを無効化する。SSHでフォワードするときにxauth関係であれこれしないで済む
-wrで白背景。-brだと黒背景になる
-screenで画面解像度を指定
:1で使用するディスプレイ番号を指定
+extensionで拡張を有効、-extensionで無効
XINERAMAだけは+xinerama, -xineramaと別になっている
XDMCPを使ってディスプレイマネージャからアクセスするときは-query <host>とか
Xephyrが起動したら、適当にクライアントを上げればOK。
export DISPLAY=:1 xterm &
とかそんな感じ。あるいはenvを使うなり、クライアントが対応しているなら-displayオプションを使うなり。
親環境のキーマップ設定はXephyr内で引き継がれないようなので、setxkbmapとかxmodmapを適宜実行する。ただしXephyrの外でdisplayを指定して実行しても反映されないらしい。
一連の流れを適当にスクリプト化しておくといい。
1 #!/bin/sh
2 Xephyr -ac -wr -screen 1024x768 :1 2>/dev/null &
3 # Xephyrが:1を開く前に以下が実行されないよう適当にディレイ
4 sleep 1
5 # Xephyr上のxtermでsetxkbmapとxmodmapを実行
6 # LANG=ja_JP.eucJPで何故か動かない(xtermが一瞬で終了する)
7 # LANG=Cとかja_JP.UTF-8では動いた
8 # mlterm -eだとどれでも一瞬で落ちた
9 xterm -display :1 -e "setxkbmap -model hhk -layout jp; xmodmap $HOME/.Xmodmap; bash" &
02/12
ふと過去のnoteを見返してうわあああとなる。まあそういうものか