Xdefaults Tips

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"

これでホストに応じた切り替えと、共通項目の維持が楽になる。まとめると こうだ。

Tgifの部分を別のアプリケーションクラスに読みかえればどんなんでも使い 分け可能。リソース定義ファイルがぐちゃぐちゃしてきた場合もぜしincludeに 書き直すよろし。


Generated with mkdiary.pl
yuuji@example.org
Fingerprint16 = FF F9 FF CC E0 FE 5C F7 19 97 28 24 EC 5D 39 BA
HIROSE Yuuji - ASTROLOGY / BIKE / EPO / GUEST BOOK / YaTeX [Tweet]