Tipsてえ程ではないが、マシンによって異なる~/.Xdefaultsを使い 分けたいときに便利な方法。個人的にはいままで使ってなかったのだがリソース ファイルをホスト毎に持ちたい場合には
~/.Xdefaults-ホスト名
のようなファイルを作れば良い(ホスト名はFQDNにする)。ただ、これを安直 に使うと、切り替えたいホストの数だけリソースファイルを持たなければならず、 共通項目を修正するのがたいへんになってしまう。こんなときは、 #include使えばスッキリ使い分けできる。
たとえば。
自宅PCのtgifでは買って来たTrueTypeFontを使うけれども職場のは フリーフォント(watanabe, wadalab)にするべよー
なんてことをしたい。てなときにはまず最初に、~/.Xdefaultsから Tgifのリソース定義を追い出して別個ファイルにしよう。
Tgif*InitialFont: Ryumin Tgif*InitialKanjiFont: Gothic Tgif.SquareDoubleByteFonts: \n\ -*-hgheiseiminchotaiw3-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -*-hgheiseiminchotaiw3-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -*-hgheiseiminchotaiw3-medium-o-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -*-hgheiseiminchotaiw3-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ : :
なんてTgif定義部分を切りとって別ファイルにする。たとえば ~/script/Xdefaults/tgifなんてファイルに入れたとすると ~/.XdefaultsのTgif定義だった部分は次のように書換える
: #include "script/Xdefaults/tgif" :
#includeはXサーバが解釈するのでホームディレクトリからの相対パスで書け ば良い(もちろんX起動をホームディレクトリ以外からやったらだめだと思うが)。
次に、職場マシン用にフリーフォントを利用するようなTgifリソース定義を 書いたファイルを作る。これは~/script/Xdefaults/tgif-freefontと しよう。こんな感じ。
Tgif.SquareDoubleByteFonts: \n\ -watanabe-mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -watanabe-mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -watanabe-mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ -watanabe-mincho-medium-r-*--%d-*-*-*-*-*-jisx0208.1983-*,H,Ryumin-Light-EUC-H\n\ \n\ : :
最後に職場のホスト専用のリソースファイルを作る。たとえばファイル名は ~/.Xdefaults-goose.icc.koeki-u.ac.jpとしよう。これはtgifの差分 だけ吸収できれば良いので次のように記述する。
#include ".Xdefaults" #include "script/Xdefaults/tgif-freefont"
これでホストに応じた切り替えと、共通項目の維持が楽になる。まとめると こうだ。
#include ".Xdefaults" #include "ホスト固有定義ファイル"とだけ書く
Tgifの部分を別のアプリケーションクラスに読みかえればどんなんでも使い 分け可能。リソース定義ファイルがぐちゃぐちゃしてきた場合もぜしincludeに 書き直すよろし。