病院

猛暑だからやめておけといったのに、今度は母が父の見舞いにいって倒れる。夜中仕事を切りあげて中央高速で聖母へ。

心労からくる拒食症による栄養失調と脱水症状のようだ。

ベッドは満室ということだったが、処置室でお泊りできることに。

Internet Explorer:mac 5.2.3

Internet Explorer は w3m と同程度ぐらいキーボードでの操作性に優れた Web ブラウザだが、

英文表記なリンクが並んだようなページ(たとえば CPAN のhttp://www.cpan.org/modules/by-module/とか)

a とか b とか、リンクの頭文字をタイプすると、そこにフォーカスが移るではないか!

たとえばhttp://www.cpan.org/modules/by-module/だと、a で AFS/,e で ERG/ ね。

のみならず、早めに a p a とタイプすると Apache/ とか、x m で Xmms/ とかに移動する。

こういう、「早めにどんどんタイプすると、スペルの2文字め以降も対応をみてフォーカスを移動」というのは、Mac OS 9 までの Finder がそうだったような気がするが、Explorer はどうだったかな。少なくとも Explorer は a をタイプしていると、a で始まるエントリにどんどん次々と移動していってくれたが、Mac OS X の Finder は、a で始まる最初のエントリにフォーカスがいったまま、その次は何も起らないのでいちばんダメ。

IE for Windows

Windows の IE だとどうだったけな、いまいちこういう挙動の記憶がない.しかしいま実家なので Windows がないなぁ、と、家に帰ってきたknok さめをつかまえて試してみていただく。やっぱできないようだ。

夏休み

路上が夏厨ドライバーだらけで鬱になる。とろい。うざい。あぶない。

Caps を Ctrl に、続編

uControl で Caps を Ctrl にしているわけなのだが、ウインドウ切り替えにアレにコレに、modifier を駆使してがりがりキーボード作業していると Control Lock (?) 状態になることがときたまある。

これは非常に腹立たしい。窓から PowerBook を捨てたくなる。先程はマウスを思いきり机に打ちつけて、机が微妙にへこんだ。

USB キーボードなら簡単

という話もあるが、しかし疑問の声もあがっているようで。しかし PowerBook な俺には関係ない。

Technical Note TN2056: Installable Keyboard Layouts

Mac OS X 10.2 adds the ability to install a new keyboard layout byputting a file or bundle in a standard folder.It is also now possible to define a Unicode keyboardvia an XML text file. These keyboards have the same set ofcapabilities as the 'uchr' resource keyboards defined in the document"Supporting Unicode Input." In fact, the XML file is translated tothe uchr format and then handled in exactly the same way.

にはおいしそうな話があがっていて、つまり OS X ではKeyboard layout を XML で記述して設置すれば、それがオレキーボードレイアウトとして選択可能になる。US Keyboard の定義は/System/Library/Keyboard Layouts/Unicode.bundle/Contents/Resources/USExtended.keylayout にあるのでパクる。

… しかし俺は「Caps を Ctrl にしたい」んでもって「Caps が何にアサインされているかはともかく、Caps キーがもたらすモディファイヤのロック状態を捨てたい」ので、後者はこの戦法だと無理なようだ。kernel の中に状態をもっている模様。

uControl と同様のものを探してみたが…

DoubleCommand

だめ。ステ

(あとなんか1個あったな)

だめ。ステ

uControl パッチ

uControl は Caps のイベントのあと、状態をしらべて、kernel に「ん? Caps? さぁ押されてないなぁ、勘違いじゃないの?」って感じで event のフラグを変えて自分のフックから戻しているのだが、戻しきれていないイベント組み合わせがあるのだろう。

uControl には挙動を syslog るオプションもあるのだが、どういうタイミングで (おそらく modifier 入力がぶつかってからみあったときなのだろうが)それが起こるのか予測しがたい、で再現したってそれはログられたキーイベントの数十行まえのどこかなのでどうももわからない。

とりあえずきたないパッチを入れて状況が改善されるか生活中

diff -urN uControl1.3.2/kext/ODHIDHack.cpp uControl1.3.2jm/kext/ODHIDHack.cpp
--- uControl1.3.2/kext/ODHIDHack.cpp    Wed Mar 19 06:19:56 2003
+++ uControl1.3.2jm/kext/ODHIDHack.cpp  Sat Aug  9 13:45:01 2003
@@ -461,6 +461,18 @@
     // update with our own flags
     flags |= addFlags;
 
+    // morimoto@xantia.citroen.org: start change
+#ifdef CAPS_TO_CTRL
+    if (capslock.enabled 
+        && !(capslock.kbtype && cachedKeyboard != capslock.kbtype)) {
+      // for some circumstances, caps flag has set
+      // although we unset capslock event.
+      // force the bit off.
+      flags &= ~0x10000;
+    }
+#endif
+    // morimoto@xantia.citroen.org: end change
+
     // SEC handle the scrolling after all the translation has happened
 #ifdef SCROLL_EMULATION
     checkForScrollKey(flags);

Macs do Emacs? Who knew?

Macs do Emacs? Who knew?

OS 全体で、さらに Emacs なキーバインド.~/Library/KeyBindings/DefaultKeyBinding.dict にかいておく。

/* Picked up from Help search on Key Bindings.  Good stuff -shane */
/* ~/Library/KeyBindings/DefaultKeyBinding.dict */
{
        "~f"="moveWordForward:";
        "~b"="moveWordBackward:";
        "~<"="moveToBeginningOfDocument:";
        "~>"="moveToEndOfDocument:";
        "~v"="pageUp:";
        "~d"="deleteWordForward:";
        "~^h"="deleteWordBackward:";
        "~\010"="deleteWordBackward:"; /* Alt-backspace */
        "~\177"="deleteWordBackward:"; /* Alt-delete */

        /* Escape should really be complete. */
        "\033"="complete:"; /* Escape */
}

mhc2ical

というわけで、入力がこの世でサイコーのオーガナイザー、mhcデータをiCalに持っていくMhc2icalが動くようになった。なかなかすばらしい。

うぉ、この iCal ファイル (RFC2445: Internet Calendaring and SchedulingCore ObjectSpecification (iCalendar) らしいですヨ) はもちろん iCal の「読み込み...」メニューから読み込めるのだが、こんな程度の仕様ならバカにでも切れる。

この iCal ファイルをhttp://www.example.com/~me/me.ics とかしておいておくと、webcal://www.example.com/~me/me.ics という URL で iCal が起動して読み込む。

のみならず、たとえば 15 分おきにwebcal://www.example.com/~me/me.ics をチェックして変更に追従していけ! ということもできる。

これはすばらすい。今までは「いや、スケジュールを変換して読みこめるつってもね。日々の追従がね。まぁたまに mhc 内容をキレイに印刷する整形ツールとしてなら使ってやってもいいかな」程度に思っていていたわけですが、これならつかえるな。

/usr/lib/ruby/1.6/powerpc-darwin6.0/ruby.h

/usr/lib/ruby/1.6/powerpc-darwin6.0/ruby.h

Mac OS X 10.2 (Jaguar) の /usr/lib/ruby/1.6/powerpc-darwin6.0/ruby.hが見付からない (もちろん Developer Tools は入れてある)、でもある人もいるらしい、はて。と思っていたら、/Applications/Installers/Developer Tools/Packages/BSDSDK.pkg にあるとのこと。こんなとこにあってもわかんねえよ… > Apple

やっと ruby extconf.rb とかできるようになった。