Xnest環境でrioを動かす

rioX Window Systemのウィンドウマネージャとして実装されている.ということで,Xnest環境でrioを立ち上げてみよう.Xnestの使い方は,「Xのウィンドウで別のデスクトップを表示するには」が参考になるだろう.Xnestがインストールされていない場合は,xorg-x11-Xnestのようなパッケージをインストールする必要がある.
では,早速試してみよう.

$ xauth list|grep localhost/unix:0
localhost/unix:0  MIT-MAGIC-COOKIE-1  45abc0815d05abeff7a89e45267f35c8
$ xauth add :1 MIT-MAGIC-COOKIE-1  45abc0815d05abeff7a89e45267f35c8
$ Xnest :1 &
$ DISPLAY=:1 SHELL=rc rio &

Xnestのウィンドウ内でrioが起動する.rioの起動時に環境変数SHELLを設定しているのは,9termでbashの代わりにrcを使うためだ.ここはお好みで.Plan9portのrioはウィンドウマネージャとして実装されているので,本当のPlan9とは挙動が違う.例えば,9termのウィンドウ内でrioを実行したら,そのウィンドウ内に入れ子的にrioが立ち上がるが,Plan9portの場合は,次のようにエラー終了してしまう.

$ rio
rio: it looks like there's already a window manager running;  rio not started

LinuxとPlan9portで.profileを同じにすると,同名コマンドの扱い(パスの検索順序)が問題になるから,Plan9portを使うのは,Xnest環境でと割り切って,次のようなスクリプトを使うというのも一つの手かな.

#!/bin/bash
PLAN9=/opt/plan9
PATH=$PLAN9/bin:$PATH
export PLAN9

Xnest :1 &
DISPLAY=:1 SHELL=rc rio

(追記:2008-08-30)p9pとLinuxのコマンドがバッティングする場合は、9コマンドを使えばよい。p9pのコマンドを優先して実行してくれる。