JISキーボードでUS配列やDvorak配列を使う方法を解説します。
以下の話はMac OS 8.6日本語版にて確認しています。
Mac OS 9については、まだ買ってないのでわかりまません。
Mac OS 8より前の漢字Talkなどでは状況が異なります。
かな入力については関知しません。
ResEditを使用する場合がありますが、失敗しても責任は負いません。注意事項等解説しませんので、必要な知識を身につけてから臨んでください。 (参考)

はじめに一言
Mac OS 7.6.1まで(漢字Talk7.xを含む)は、JISキーボードでもU.S.配列を選べば、キートップに書いてある文字を無視してU.S.配列で入力できました。しかしMac OS 8でこの手は使えなくなりました。
Mac OS 8以降、Systemファイルから「Roman - JIS」、「ローマ字 - JIS」などのキーボード配列(KCHRリソース)が廃止され、代わってitlkリソースが登場し、JISキーボードを使う場合でもU.S.配列を選択するようになりました。JISキーボードが接続されているとシステムがそれを認識し、itlkリソースによってJIS配列がU.S.配列に変換されます。 詳しくは、 TN 1152: Mac OS 8 の JIS キーボードをサポートする仕組みについてをご参照ください。

また、Mac OS 8.5からはDvorak配列も標準で使えるようになりました。しかしJISキーボードでは若干の問題があります。
ではどうするのか...


Romanスクリプト編

とりあえずの一番簡単な方法
「キーボード」コントロールパネルでAustralian配列にチェックし、入力メニュー(スクリプトメニュー?)でこれを選ぶだけです。
この方法は、人の(標準インストールされた)Macを使うときや、CD-ROMで起動したときでも通用するというのが良い点です。

U.S.配列とAustralian配列の違いは、対応するitlkリソースの存在の有無です。あと名前:-)とアイコン(kcs#、kcs4リソース)が違います。ResEditが好き、あるいは星条旗が好きという方は、itlkリソースのID0を削除してもOKです。 British配列もよさそうですが、shift+'3' が '#' でなく '£' (本当は1バイト文字の$A3)になってしまいます。

しかしこれだけでは若干の問題があります。Dvorak配列にも同じ問題があります。その問題とは、'`' と '~' が入力できないことです。(「そんな文字は使わない」とか「'~' は '%7e' で済む」という方は、Australian配列にするだけで充分です。)

JISキーボードにはUSキーボードにないキーがあり、まぁそれは余らせとけばいいんですが、逆にUSキーボードにあってJISキーボードにないキーというのも一つあります。それは最近のUSキーボードだと左上にある `/~ (バッククォート/ティルダ)のキーです。サードパーティーのJIS拡張キーボードには付いてることもありますが、アップル純正のJISキーボード(iMacやPowerBookも)にはありません。一時しのぎ的には、`/~ を入力するときだけ配列をU.S.にもどして済ませます。またテンキーの ',' も入力できません。

この問題はソフトウェア的に一応解決できます。Australian配列にすると、JISキーボードでdeleteキーの左にある \/| (円記号/縦棒)のキーや、右shiftキーの左にある _/ろ のキーが余るので、そこに `/~ を割り当てます。割り当てる方法は私のわかる方法で二つあります。

一つはKCHRリソースをResEditで修正する方法です。テンキーの ',' も付けられます。あるいはテンキーの ',' キーに '0' の文字を割当て、英語キーボードのように横に二つ分の大きさの '0' とすることもできます(まん中で切れてますが)。

もう一つはSwapKeyというコントロールパネルを使う方法です。このコントロールパネルは、文字コードではなくキーコードを入れ換えてくれます。この方法では、右シフトキーの左で余ってる '_' (ろ)のキーに shift を割り当て、右シフトキーを「長く」することもできます(KCHRでは不可)。しかしインターフェースが英語キーボード用で、JISキーボードにしかないキーは直接指定できません。そこでダミーの設定をして、ResEditでSwapKeyを開き、tkeyリソースのID-4033を書き換えるということが必要になります。これはキーコードを知らなければできず、KCHRより面倒です。

あと、KMAPリソースをいじる方法とかあるかも知れません。

それから、その他の問題がまだちょっとあります。 ソフトによっては自前でKCHRリソースを持ってて、せっかく選んだキーボード配列を無視するものがあります。またXサーバーのソフトで、eXdousはKCHRは見ないでキーコードを読んでるようです。MI/XはKCHRを見てくれました。

KCHRやSwapKeyをResEditで修正する具体的方法は... やることは簡単ですが、説明するのが面倒なので、工事中。


ことえり編 Romanスクリプトで選んだキーボード配列がローマ字入力にも使われます。(おわり)

最近のことえりは独自のKCHRリソースを持ってませんので、ResEditによる改造は不要です。
また最近は「キーボード」コントロールパネルを開いても、Romanスクリプト以外を選択できなくなりました。機能拡張をOFFにすれば(Shiftキーを押しながらMacを起動)、「キーボード」コントロールパネルで日本語スクリプトも選べるようになりますが、機能拡張OFFじゃ漢字変換できないので意味ありませんね。


WXG編
私は今までMacVJE-Deltaを使ってきましたが、なかなかMac OS 8.6に対応してくれない(
Mac OS 9では問題ないらしい)のでWXG試用版に乗り換えました。正式版の発売が待ち遠しいですね。以下の対応方法は正式版で通用するかどうかわかりませんのであしからず。

WXGではことえりと異なり、Romanスクリプトのキーボード配列に関係なく、JIS配列でしかローマ字入力できません。しかし「キーボード」コントロールパネルを開いても日本語スクリプトが選択できず、キーボード配列は選べません。ここで改造が必要になりますが、手を加えるのはWXGの方ではなく、「System」ファイルです。
WXGで使用されているJIS配列は、実は「System」中の「ローマ字」キーボード配列のようです。しかしFinderで「System」を開いてみても「ローマ字」キーボード配列は見えません。機能拡張OFFで起動してカナ配列を選択しても、見えるようにはなりませんでした。「ローマ字」キーボード配列の正体はKCHRとitlkリソースのID16385です。ResEditでKCHRの方だけ消してしまえばOKです。
これでことえり同様、Romanスクリプトで選んだキーボード配列がローマ字入力にも使われるようになります。

注意として、「機能拡張」フォルダにある「キーボードライブラリ」というファイルを外さないこと。実はWXGはその内部に独自のKCHRリソースを持っていて、「キーボードライブラリ」がないと、この自前のKCHRを参照するようです。また漢字Talk7.xにインストールしたときも、おそらくこのKCHRが関与してくるものと思われます(未確認)。

なお以上は、私の場合これでうまくいきました、という話で、必ずこれで成功するかどうかはわかりませんし、障害が発生しないとも保証できません。うまくいった、ダメだった、という情報をメイルでいただければ幸いです。

追記:現在 Mac OS 9.0.4 + WXG(製品版) で不可解な挙動に悩んでます。上記でうまくいったりダメだったりしています。8.6+試用版ではたまたまうまくいってただけかもしれません。


Macの情報へ戻る

宗本久弥 hisa@eve.u-ryukyu.ac.jp