Micro Black Box

XREA 広告

OpenBSD Mini QandA

注意: 当方は、このページの情報に従って発生したいかなる損害についても、一切関与しません。内容を良く理解した上、自らの責任のもとで行って下さい。なお、OpenBSD 2.9 に基づいた情報です。

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 してください。

*1: kinput2 経由での日本語入力は可能です。

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 にパッチをあてることでも、この問題を解決することができるようです(未確認)。

*1: 例えば、"co#80:li#20" といった感じになります。
*2: /usr/include/curses.h を参照。

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 というファイルの内容に従ってください。


存在するすべてのコンテンツは、著作権法及び国際条約によって保護されており、無断での複製や転載などは処罰の対象になります。なお、引用や個人的な目的による複製などに関しては、著作権法上でも認められている正当な権利であり、これを自由に行えるものとします。