OpenBSD Mini QandA
注意: 当方は、このページの情報に従って発生したいかなる損害についても、一切関与しません。内容を良く理解した上、自らの責任のもとで行って下さい。なお、OpenBSD 2.9 に基づいた情報です。
- kernel 出力の文字色や背景色を変えるには
- 日本語 106 キーボードを使うには
- CAPS と Ctrl を入れ変えるには
- kterm を起動すると Couldn't set locale: ... という warning が出る
- kterm で環境変数 TERMCAP の値が不正になる
- OpenBSD で XPG4DL を導入するには
kernel 出力の文字色や背景色を変えるには
kernel の configuration file に
option WS_KERNEL_FG=WSCOL_XXX
option WS_KERNEL_BG=WSCOL_XXX
を加えて kernel を再構築することによって、kernel が出すメッセージの文字色と背景色を変更することができます。
WSCOL_XXX の部分には、/usr/include/dev/wscons/wsdisplayvars.h で定義されている値を指定してください。
詳しくは、wscons の man page で説明されています。
日本語 106 キーボードを使うには
key map を日本語 106 キーボードに合わせたい場合、
# wsconsctl -w encoding=jp
で、変更できます。
もし、起動時、自動的に key map を変更したい場合は、/etc/rc.local に上記のコマンドを追加してください。
CAPS と Ctrl を入れ換えるには
例えば、key map が日本語 106 キーボードの場合、
# wsconsctl -w encoding=jp.swapctrlcaps
とすれば、CAPS と Ctrl が入れ換わります。
kterm を起動すると Couldn't set locale: ...
という warning が出る
kterm を起動すると、
% kterm & Couldn't set locale: ja_JP.eucJP,ja_JP.ujis,ja_JP.EUC,japanese.euc, Japanese-EUC,ja,japan
という感じの warning が出ることがあります。これは、OpenBSD の locale への対応が不十分なのが原因です。
放っておいても特に実害はないのですが、気になる人は、kterm.h の
#define KTERM_XIM
という部分をコメントアウトしてしまえば、warning は出なくなります。
ただ、上の方法だと、kterm へ XIM を利用した日本語入力ができなくなりますので *1 、XIM を使いたい人は X を -DX_LOCALE 付きで recompile してください。
kterm で環境変数 TERMCAP の値が不正になる
OpenBSD の package や ports で導入した、何も手を加えられていない kterm は、環境変数 TERMCAP を正しく設定してくれません *1 。これにより、例えば Emacs が
Terminal not powerful enough for Emacs.
などというエラーを出し、起動してくれない場合があります。
これは、現在の OpenBSD が標準で ncurses を使うのが原因のようです *2 。調べてみたところ、ncurses を使っている Linux distribution などでも、同様の問題が報告されています。
TERMCAP の値を正しいものにするには、ncurses を使わないようにします。ncurses でない curses が /usr/lib/libocurses.* として残っていますので、-lcurses の代わりに -locurses を付けて kterm を recompile してください。
もし、上記の方法が迂遠に感じられ、もっと安直な解決法を望むなら、
% unset TERMCAP
とするのもいいかもしれません。
あるいは、Debian の package で行なわれているように、kterm にパッチをあてることでも、この問題を解決することができるようです(未確認)。
OpenBSD で XPG4DL を導入するには
最初に断っておきますが、あまり腕に自信のない人は自重しておいた方が無難です。
Citrus Project が開発している XPG4DL を導入することにより、locale を使ったプログラムを正常に動作させられるようになります。
まず、XPG4DL の snapshot を固めた tar ball と、それに対するパッチがこちらのページにありますので、これらをダウンロードします。
次に、OpenBSD の CD-ROM などから、以下のように、libc と libc_r 、libexec のソースコードを展開します。
% cd /usr/src % tar xzf /mnt/cd0/OpenBSD/2.9/src.tar.gz ./libc ./libc_r ./libexec
ソースコードを展開したら、適当な場所に、XPG4DL の snapshot と、それに対するパッチを展開します。
% cd ~/src % bzcat xpg4dl-20010802.tar.bz2 | tar xf - % bzcat xpg4dl-20010802-openbsd-patch.tar.bz2 | tar xf -
パッチをあてます。
% cd xpg4dl % patch -p0 < \ ../xpg4dl-20010802-openbsd-patch/xpg4dl-20010802-openbsd.patch % bzcat xpg4dl-20010802-openbsd-patch-fix.diff.bz2 | patch -p1
あとは、パッチに付属している MEMO というファイルの内容に従ってください。
存在するすべてのコンテンツは、著作権法及び国際条約によって保護されており、無断での複製や転載などは処罰の対象になります。なお、引用や個人的な目的による複製などに関しては、著作権法上でも認められている正当な権利であり、これを自由に行えるものとします。