2010年3月25日

jfbterm uim-fep screen

2日前の記事に加筆して独立させた。

jfbterm と screen

jfbterm から screen を起動したときに、termcap の情報がロックされるのか、less , lv などが文句をいったり、mutt が暴走したりする。

何度か設定を工夫していたが、やっと満足のいく設定ファイルができたので公開する。

$ grep jfb .aliases
test -x /usr/local/bin/jfbterm  && \
alias jfb="$HOME/bin/jfbterm.wrapper"
$ cat $HOME/bin/jfbterm.wrapper
#!/bin/sh -euf
#
#   $Id: jfbterm.wrapper,v 1.2 2010/03/24 20:11:03 yaemon Exp $
#

if test ! -x /usr/local/bin/jfbterm ; then echo "not exist jfbterm" 1>&2 exit 2 fi . $HOME/dotfiles/.env.UTF-8.FreeBSD SCREENRC=$HOME/dotfiles/.screenrc.jfbterm ; export SCREENRC exec /usr/local/bin/jfbterm
$ cat $HOME/dotfiles/.env.UTF-8.FreeBSD
# $Id: .env.UTF-8.FreeBSD,v 1.7 2010/03/24 19:34:42 yaemon Exp $
LANG=ja_JP.UTF-8 ; export LANG

export COLORTERM TERM=xterm-color SCREENRC=$HOME/dotfiles/.screenrc.xterm ; export SCREENRC
LC_COLLATE=C LC_MONETARY=C LC_NUMERIC=C LC_TIME=C LC_MESSAGES=C export LC_COLLATE LC_MONETARY LC_NUMERIC LC_TIME LC_MESSAGES
# for jman use if test -x /usr/local/bin/jman ; then JMAN_JA_NROFF='LANG=ja_JP.eucJP /usr/local/bin/groff -S -Wall -mtty-char -man -Tnippon -dlang=ja_JP.eucJP' export JMAN_JA_NROFF if test -x /usr/local/bin/lv ; then PAGER=lv ; export PAGER fi fi if test -x /usr/local/bin/lynx && test -r $HOME/.lynx/utf-8.conf ; then LYNX_CFG=$HOME/.lynx/utf-8.conf export LYNX_CFG fi
$ cat $HOME/dotfiles/.screenrc.jfbterm
#
# $Id: .screenrc.jfbterm,v 1.5 2010/03/24 19:34:42 yaemon Exp $
#
chdir
defutf8 on
encoding UTF-8
# term jfbterm-256color
term jfbterm
nethack on

$ tail $HOME/.bashrc
if test $SHLVL -eq  1 && test "$LANG" != "C" ; then
 . $CONFDIR/.env.locale.C
fi

if test "$TERM" = "jfbterm" ; then TERM=jfbterm-256color fi

ログインシェルに余計な環境変数を持ち込まないように工夫すると wrapper が必要になった。

通常は、アクセスしたらもうターミナルの状態が変わらないから、コンソールやリモートログインに合わせ = 環境変数 LANG に合わせて環境を変えるだけで良い。基本、言語と OS に合わせた設定ファイルは .bash_login や .login で読み込んでいる。

今回は、xterm でもないのに 日本語、ということで不正規な処理になっている。

FreeBSD 以外で jfbterm を使うときのためにもうひと工夫したいが、今回は見送り。

jfbterm と uim-fep

2日前、やっとコンソールで日本語が入力できるようになった。

uim-fep をいれてからずいぶんとかかった。

最大の敗因は、Alt + Space での切り替えにこだわったこと。いくら設定ファイルを試行しても変わらない、いやどうもデフォルトでもそうらしいと調べたが、私の環境では Alt + Space が何かにフックされて uim に届かない。

そして英語キーボードとして使っているから、もう一つのデフォルトのキーバインドの [半角/全角] は存在しないし。起動しないよね。

Alt + Space が何にフックされているのかは調査打ち切り。 jfbtermX のライブラリを使っているから、X で普段使いしている設定が怪しいと .xinit で読み込んでいる設定ファイルを調べたり、無効にしたりもしたが、それでも Alt + Space は uim-fep に届かないとしか分からなかった。

次の敗因。uim 付属の README.fep に screen を使用する場合は… という説明があってそれに従おうとしたこと。歴史的な経緯で残っている記載だろう( 旧名 : screen-uim ) が、 jfbterm を起動して、自分で uim-fep を起動してから screen 動かすと、ふつうにそれぞれの窓で日本語が入力できる。

jfbterm から uim-fep や screen を自動起動しないのは、趣味と使い方の問題。日本語を表示したいけれど、書く必要がない日もある。

いっとき、jfbterm が動かなくなった という愚痴をこぼしたことがある。

$ jfbterm 2> logfile と起動してわかった。/usr/local/etc/jfbterm.conf (私の環境) の video.mode 指定をねぼけてコメントアウトした日があるらしい。

jfbterm デフォルトの解像度 800x600 で動かなくて、1024 x 768 だと動くグラフィックカードというのも不思議な気がするが、逆よりは宜しい、と書いておこう。

解像度と色数は、/var/log/Xorg.0.log を参照してやっと正常に指定できた。

Xorg の設定ファイルをみたら、いつのまにかフォントサーバ xfs を使わなくなっていた自分に気づいたりする。これが原因で、Thunderbird 2.x の文字がふと横に間延びしていたのか。( Thunderd を 3.x 系統にしてから気づいた、ので未検証だが )

$ cat $HOME/.uim
(define-key generic-on-key? '("<Control>\\" "<Shift> "))
(define-key generic-off-key? '("<Control>\\" "<Shift> "))
(define-key anthy-on-key? 'generic-on-key?)
(define-key anthy-latin-key? 'generic-off-key?)
(define-key generic-cancel-key? "<Control>g")

0 コメント:

コメントを投稿