2000-02-29(火) [長年日記]
■ ftpup
pos.toの新しいWebサイトがやっと準備ができたと知らせが来た。待ってたぜぃ。これで少なくともこま犬のコンテンツだけはBEKKOAMEから引っ越せる♪ さて、新しいサイトこそは自動的にアップデートをしたいと思っていたので、RAAから前田さんのftpup
をもらってくる。これはFTPで更新されたファイルだけをアップロードしてくれるRubyスクリプト。まぁ、この手のソフトは多いけど、とりあえずRubyで書かれているものをチョイスするのが基本でしょう(笑)。
サンプルで付いてくる設定ファイルを新しいサイトに合わせて書き換え、komainu.ftpup
という名前で保存する。本当は~/.ftpup
にするとことなんだけど、他のコンテンツもこれで更新するようにしたいので、サイトごとに別のファイルを用意することにした。あとは実行するだけ。おっと、パスワードが書かれているので、パーミッションを600にするのを忘れずに。
$ ./ftpup -f komainu.ftpup
■ いまこれを書いてる時点では、続々とアップロード中。なにせ合わせて10MBはあるので、そう簡単な話ではない。さらに不安なのが、次回の更新にどれくらい時間がかかるか、なんだな。たくさんあるディレクトリをいちいち見ながら時刻を比較してたらたまらんほど時間がかかるはず。もし問題なら、前回の更新時刻をどこかに保管しておくように改造しないといけないかも。
あ、途中で切れた…… >ftpup やっぱ一気に10MBはダメか? つーか、やっぱ日本のインターネットは、テレホーダイタイムはダメ? しょうがない、また明日にでもトライしよう。
■ RFC2060
ところで最近、通勤電車の中でRFC2060を読んでいる。言わずと知れたIMAP4rev1のRFCである(知れてないって)。80ページほどあって、中身ぎっしり。もちろん英文である。探してみたところ、翻訳されてないみたいなので、需要の少なさを実感する。まぁ、これだけ仕様がでかかったら、実装する気も失せるわな。面倒なのはI18N対応と、非同期メッセージだな(謎)。
2000-02-27(日) [長年日記]
■ VJEとxmodmap
昨日は、手動でxmodmap
を実行しただけのところで止めておいたので、その変更はその日限りのものだった。ので、今日PCを立ち上げたら日本語が入力できなくなっていて焦ったのなんの(笑)。で、~/.Xmodmap
を作って「keycode 129 = Kanji
」と書いておく。が、loginし直してもダメ。変だなぁ。/etc/X11/xinit/xinitrc
を読むと、このファイルを読み込んでるように見えるんだけど……。
ホームディレクトリにあるそれっぽいファイルは昨日、環境変数XMIDIFIERS
を指定した3つのファイル。これのどれかが実行されているはずなんだが。その時、vi
(その実体は日本語化されていないvim
)でEUCで書かれたテキストを開いたら、文字化けていることに気づいた。これ、たぶんLANG
環境変数をVJEのマニュアル通りにja_JP.eucJP
にしたせいだ。確かにja_JP.ujis
に戻すと文字化けは直る。VJEはこれでも問題ないのでいいとして、これら3つのファイルのどれが読み込まれているのかを確かめる必要がある。で、適当な環境変数をそれぞれに設定してloginし直してみると、どうやら.xsession
がそれらしい。
でもわかったのはここまで。誰が.xsession
を読み込んでいるのかさっぱりわからない。仕方がないのでKondaraの掲示板で聞いたら、得られた答えは『~/.xsession
もしくは~/.xinitrc
に「xmodmap .Xmodmap
」を追加する』だったという……。やられたぁ。というわけで、.xsession
に追加して事なきを得ました。くえすたさんありがとう。
しかし。日記を読み返してみると、KDEを導入する前には.Xmodmap
はちゃんと読み込まれているみたいなんだよね(当時使っていたのはEnlightment)。こういうのって、ウィンドウマネージャに依存するの? なんか変だなぁ。と思ったけど、この日も.Xmodmap
を設置したあと、すぐにKDEを入れてるから、読みに行ってるかどうか確認してないかも。まぁ、いいか。
あと、昨日の嘘を訂正。VJEの辞書登録は、(なぜか)少し時間がたつと反映される模様。vjed
にHUP
を送るというのは嘘でした。
2000-02-26(土) [長年日記]
■ VJE-Delta 3.0
会社帰りに町田のヨドバシカメラに寄ったら、VJE-Delta 3.0を見つけてしまったので買ってしまった。ちなみに町田はVACS(VJEの開発元)の所在地なので、置いてなかったらそれはそれで悲しかったけど(でも最後の1個だった)。実はDOS時代のVJE-βからず〜〜〜〜っとVJEユーザで、その間いちども浮気をしたことがない。現在では決して最高の日本語変換エンジンではないけれど、指も頭も完全にVJEの癖になじんでしまっているので、おいそれと他に乗り換えられるものではない。というわけで、VACSがちゃんとLinuxやBSDにVJEを移植してくれているのは嬉しい。しかもWindows版がまだ2.5なのに、Linux版は3.0だ。
CD-ROMにはRPMパッケージがちゃんと含まれているので、インストールは簡単。もちろん(?)Kondaraはサポート対象に入っていないけど、リストの中にはLASERの6.0なんかもあるので大丈夫でしょう。入れたあとは、今まで使っていたCannaからVJEへ設定を書き換えなければいけない。daemonであるvjed
は例によって自動的に入っているようなので、やるべきことは以下の2点:
- 環境変数
LANG
とXMODIFIRES
の書き換え kinput2
の代わりにvje
を起動
マニュアルでは環境変数は.bashrc
でと書いてあるけど、$HOME
でXMODIFIRES
を設定している「.」で始まるファイルを探してみると、X関係のファイルだけで3つもある(.Xclients
、.xinitex
、.xsession
)。現在、どのファイルの設定が働いているのかわからないけど、なんにせよこっちを変えた方がいいみたい。というわけで、それらのファイルのCannaの設定をコメントにして、以下の3行を追加する:
# VJE-Delta XIM=vje XIM2=""
いったんlogoutしたあと、入り直して試してみる。環境変数はちゃんと設定されてるし、vjed
もvje
も動いている。しかし、Shift-spaceを押しても漢字モードにならない。そもそもVJEのパネルが出てないじゃないか。どこに行ったんだ……と思ったら、KDEのパネルの下に隠れてた(笑)。どっちも最上位に表示されるウィンドウだからなぁ。デスクトップを移動すると普通のウィンドウの下にも隠れちゃったりして、ちょっとこのへんは完成度が低い感じがする。マニュアルを読むと、変換キーはCtrl+spaceだそうで。そらあかんわな(笑)。しかし、IMごとにここまで違うと、さすがに混乱する。
それにしても、Ctrl+spaceってのは押しづらい。今使っているキーボードはテンキー部分だけを切り落とした(カーソルキーはある)富士通製109キーボードで、これはうちの連中に人気があってどこの家にもあるというシロモノ。Linuxerには101キーボードファンが多いみたいだけど、おれはJIS配列じゃないとダメな上に(101の方が変だと思うんだけどね……)、左利きのためカーソルキーをけっこう便利に使うため(マウスと一緒に使える)、こういうキーボードはいい。こいつで使いやすくキーバインドを変えたい。ちなみにWindowsで使っているVJE-Deltaでは、「変換」キーでON/OFFを切り替えているので、それができると嬉しい。VJEのFAQを読んでみると、xmodmap
とVJEのキーボード設定ファイルgeneral.key
を使って設定できそう。
■ xmodmap
まず、xev
を実行して、変換キーを押すことでこのキーのキーコードを得ることができる:
KeyRelease event, serial 27, synthetic NO, window 0x3400001, root 0x26, subw 0x0, time 2384090846, (496,124), root:(500,653), state 0x0, keycode 129 (keysym 0xff21, Kanji), same_screen YES, XLookupString gives 0 characters: ""
「keycode 129」とある。続いてxmodmao -pk
でキーコード129を見ると、こんな感じに現在はスペースに割り当てられていることがわかる:
129 0x0020 (space)
VJEのFAQによれば、これをKanji
というキーに変えればいいみたい。とりあえず一時的にこんか感じで変えてみる:
$ xmodmap -e 'keycode 129 = Kanji'
これで変換キーを押すとKanjiというコードが発生することになるんだな(たぶん)。そしたら次は、VJEの設定でKanjiキーに機能を割り当てればいい。まず、$HOME/.vje/
にVJEのディレクトリからdefault.key
をgeneral.key
としてコピー、次の1行を追加する:
XK_Kanji=F_SCRN F_SCRN F_SCRN F_SCRN F_SCRN
vjekill
していったんvje
を殺してから、vje
を再度実行。試しに漢字変換してみると、おお、ちゃんと変換キーでVJEがON/OFFされる……けど、何か入力してかな漢字変換をさせようとすると、OFFになってしまうぅ。文字入力中は、変換動作をするようにしないといけないんだな。VJEのマニュアルを読むと、さっき追加した行の各フィールドは、VJEの状態によって何をさせるかを指定しているようだ。さっきの設定ではいつでもON/OFFを切り替えることになっている。これを以下のように置き換えた:
XK_Kanji=F_SCRN F_CNV F_CNV_NCNV F_CNV_NCNV F_CNV_NCNV
これはXK_space
のパクり。これで文字入力状態では変換キーとして働き、何も入力されていないときにはOFFになる。めでたし。この調子でキーアサインを好きなように変えていけばいいだろう。
続いて単語登録はどうなっているのか調べたら、なんとGUIでは登録できないみたいで、vadd
というコマンドでやれとある。これはCanna以下だなぁ。なんでWindowsみたいにGUIにしないんだろう。まぁ、このコマンドでも対話式に登録できるからいいけどね。試しにいくつか登録してみたけど、なぜか変換されない。vdispd
コマンドで調べるとちゃんと登録されているのに。ふふん、これはたぶん、辞書が書き変わったことを変換エンジンが知らないせいだな。試しに、vjed
にHUP
を送ってみたら、ちゃんと変換できるようになった。うーむ、ちょっとアレな仕様だが、これくらいマニュアルに書いとけって >VACS なんにせよ、これで快適生活だ♪