Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
Dismiss

Changing Keyboard Layout in MacOSX 10.2

閲覧: 51 回
最初の未読メッセージにスキップ

Yasushi Shinjo

未読、
2003/01/21 13:15:332003/01/21
To:
新城@筑波大学情報です。こんにちは。

MacOSX 10.2 ですが、キーボードのレイアウトの変更は簡単になっ
ていますね。~/Library/Keyboard\ Layouts の下に、レイアウトの
ファイルを置くだけで、変更できます。逆に言うと、10.1 の方法
<YAS.02Ju...@kirk.is.tsukuba.ac.jp> ではうまくいきません。

というわけで、10.2 でのキーボードのレイアウトの変更方法です。
基本的には、ホーム・ディレクトリの下のライブラリの中の
Keyboard Layouts というフォルダに Keyboard.rsrc という名前で
ファイルを作ればいいです。.bundle というディレクトリを掘った
り、XML を書くのが正式みたいなんですが、ソースがないので修正
するのは大変です。

MacOSX の JIS 配列キーボード(PowerBook G4)を、ASCII 配列
(Shift 2 で @ が出る)に変える方法です。

(1) システム標準に入っているデータをコピーします。

% cp /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/Japanese.lproj/Localized.rsrc .

(2) DeReZ でテキスト形式に変換します。DeReZ は、MacOSX の
Developer CD に入っています。

% /Developer/Tools/DeRez -useDF Localized.rsrc > Localized.rsrc.text
% ls -l Localized.rsrc Localized.rsrc.text
-rw-r--r-- 1 yas unknown 527875 Jan 22 01:42 Localized.rsrc
-rw-r--r-- 1 yas unknown 2562689 Jan 22 01:42 Localized.rsrc.text
%

(3) ASCII 配列に近いキーボードを選び修正します。US でもいい
のですが、戻すこともあるかもしれないので、あまり使いそうもな
い Australian を選びます。番号が重複しなければ、既存のものを
書き換えるのではなくて、適当に増やしてもいいのでしょう。ファ
イル名は、Keyboard.rsrc.text にしておきます。

% cp Localized.rsrc.text Keyboard.rsrc.text
% emacs Keyboard.rsrc.text

修正個所は、こんな所です。

*** Localized.rsrc.text Wed Jan 22 01:42:48 2003
--- Keyboard.rsrc.text Wed Jan 22 01:48:23 2003
***************
*** 25829,25831 ****

! data 'KCHR' (15, "Australian", sysheap, purgeable) {
$"0000 0000 0100 0200 0100 0306 0404 0506" /* ................ */
--- 25829,25831 ----

! data 'KCHR' (15, "Australian3", sysheap, purgeable) {
$"0000 0000 0100 0200 0100 0306 0404 0506" /* ................ */
***************
*** 25852,25854 ****
$"031E 2D00 003D 3031 3233 3435 3637 0038" /* ..-..=01234567.8 */
! $"3900 0000 1010 1010 1010 1010 1010 1010" /* 9............... */
$"1010 1010 1010 0501 0B7F 1004 100C 101C" /* ................ */
--- 25852,25854 ----
$"031E 2D00 003D 3031 3233 3435 3637 0038" /* ..-..=01234567.8 */
! $"3960 5F00 1010 1010 1010 1010 1010 1010" /* 9`_............. */
$"1010 1010 1010 0501 0B7F 1004 100C 101C" /* ................ */
***************
*** 25860,25862 ****
$"032F 2D00 003D 3031 3233 3435 3637 0038" /* ./-..=01234567.8 */
! $"3900 0000 1010 1010 1010 1010 1010 1010" /* 9............... */
$"1010 1010 1010 0501 0B7F 1004 100C 101C" /* ................ */
--- 25860,25862 ----
$"032F 2D00 003D 3031 3233 3435 3637 0038" /* ./-..=01234567.8 */
! $"397E 5F00 1010 1010 1010 1010 1010 1010" /* 9~_.............. */
$"1010 1010 1010 0501 0B7F 1004 100C 101C" /* ................ */

Australian だと、「`」と「~」が打てません。それを、delete キー
の左の「\|」に割り当てます。それには、25853行目と 2581行目を
上のように書き換えます。

この「9」は、テンキーの9に相当しています。これが ASCII の
39 (16進数)になっています。その右側が、JIS 配列キーボードだ
と delete キーの左のキーに相当します。これを、60 (`)に書き換
えます。その 1196 行目のものは、Shift を押した時のものなので、
7E (~)に書き換えます。ついでに、その右側も、5F (_)に書き換え
ています。これは、かなの「ろ」(?の右)のキーです。それぞれの
行で、C言語風のコメント/**/の中は書き換えなくてもいいのでしょ
うが、気分の問題で書き換えて見ました。

それから、ついでに分かりやすいように名前も Australian から
Australian3 に変えています。25830行目。

(4) Rez コマンドで、元の .rsrc に戻します。DeReZ は、MacOSX
の Developer CD に入っています。

% /Developer/Tools/Rez Keyboard.rsrc.text -useDF -o Keyboard.rsrc
% ls -l Keyboard.rsrc.text Keyboard.rsrc
-rw-r--r-- 1 yas unknown 527876 Jan 22 03:06 Keyboard.rsrc
-rw-r--r-- 1 yas unknown 2562691 Jan 22 01:48 Keyboard.rsrc.text
%

(5) 作成したファイルを、所定の場所に移動します。

% mv Keyboard.rsrc ~/Library/Keyboard\ Layouts/
%

(6) 「システム環境設定(System Preferences.app)」が動作してい
たら、一度終了します。「システム環境設定」の「言語環境」の
「入力メニュー」タブを開きます。あるいは、ことえりのメニュー
の一番下の「メニューをカスタマイズ」を選んでもいいです。ここ
で、(3) で書き換えたもの(Australian3)が出てるようにします。
US は、はずしておくと切り換えが簡単でしょう。

これで終りです。

Classic 環境が生きているなら、それで動く ResEdit を使っても
編集できます。つまり、上の (3) ではなにもしなくて、(4) の後
で、ResEdit で Keyboard.rsrc を開いて編集する方法もあります。
ただし、この場合は、次のように -useDF は付けないでやります。

% /Developer/Tools/Rez Keyboard.rsrc.text -o Keyboard.rsrc
% ls -l Keyboard.rsrc.text Keyboard.rsrc
-rw-r--r-- 1 yas unknown 0 Jan 22 01:50 Keyboard.rsrc
-rw-r--r-- 1 yas unknown 2562691 Jan 22 01:48 Keyboard.rsrc.text
%
これで大きさが 0 のファイルができますが、データは
リソースフォークに入っています。

編集するのは、KCHR という資源です。適当なもの(Australian,15
番)を選んで、開きます。すると、下にキーボード、左に ASCII コー
ド表が見えます。キーを押すと、右上の対応する所が反転します。
ここで、delete の左のキーや ? の右のキーを押してみて、上の右
の所(asdf と出ている所)で色が変る場所を調べます。左の ASCII
表から右にドラッグして編集します。

終わったら mv で移動します。


% mv Keyboard.rsrc ~/Library/Keyboard\ Layouts/

ここで、cp でコピーしてはいけません。コピーするなら、CpMac
というリソース・フォークまでコピーするコマンドを使います。
(Finder でコピーしてもいいんでしょうね。確かめていません。)

というわけで、おたのしみ下さい。
日本語のドキュメントもあるんですね。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

参考文献

Installable Keyboard Layouts (日本語)
http://developer.apple.com/ja/technotes/tn2056.html

NUMAKURA Hiroshi

未読、
2003/01/26 8:10:282003/01/26
To: numa
新城さんの記事の前 (1月13日) に, 「key割り当てを追加する方法?」という質
問記事を投稿した沼倉です.

新城さんの方法のその2では, Classic環境でResEditを使ってKCHRリソースを編
集すれば変更できるとのこと. また, 新城さんが紹介してくださった

> 参考文献
>
> Installable Keyboard Layouts (日本語)
> http://developer.apple.com/ja/technotes/tn2056.html

を読んだところ, 旧式のキーボードスーツケース (リソースファイル) もサポー
トされていると書いてあります. そこで, PowerBook JIS キーボードで ASCII
配列を打つために Mac OS 9 まで使っていたキーボードスーツケースを
~/Library/Keyboard Layouts/ に Keyboard.rsrc という名前で置いてみたとこ
ろ, これがきちんと機能しました.

このキーボードスーツケースは, 7年ほど前に PowerBook 550c を購入したとき
に fj.sys.mac でどなたかに教えていただいて ResEdit で Australian 配列を
もとに作ったもので, System 7.5 以来 Mac OS 9.2.2 までずっと使ってきまし
た. Mac OS X ではどうしたらいいのかわからなかったので先日質問を投稿した
のですが, これがそのまま使えるというのは簡単で助かりました. ホームディレ
クトリの下でなく, /Library/Keyboard Layouts/ の中に置けば全ユーザーが利
用できます. なお, このキーボードスーツケースには ASCII 配列しか入ってい
ないので, ファイル名は ascii.rsrc とでもしたほうがよいのかもしれません.

ResEditによるキーボードリソースの変更方法は新城さんの説明にあるとおりで
すが, Mac OS 9 までの System の中にあるキーボードスーツケースから作る方
法を簡単に説明しておきます.

まず Classic OS の System Folder/System を開いて, Australian スーツケー
スのコピーを System の外のどこかに作ります. ファイル名は ASCII としてお
きましょう. ResEditでこれを開きます. KCHRリソースを開くと ID は15, 名前
は Australian となっていますから, ここでまず Get Resource Info して, Mac
OS が使っていない番号と名前に変更します. 私は ID を 55, 名前を ASCII と
しています. 次に, KCHR の中身を開きます. KCHRメニューの View As... を開
いて, Apple PowerBook Keyboard JIS Keyboard を選びます. あとは, 左側の
ASCIIコード表の文字を右側のキー割り当て表にドラッグするだけです. どこに
ドラッグすればよいかは, キーボードのキーを押すとそのキーに対応するところ
が白黒反転しますからすぐわかります.

Australian キー配列はほとんど ASCII 配列なのですが, 新城さんも指摘してお
いでのように ` (引用はじめ符) と ~ (ティルダ) がどこにも割り当てられてい
ません. 私はこれらを右シフトキーのすぐ左 (「ろ」) のキーに割り当てていま
す. (「ろ」を押すと `, shift +「ろ」を押すと ~ が出るようにしています.)
Australian ではアクサン・グラーヴも打てませんので, option +「ろ」でこれ
ができるようにします. これは, option と「ろ」のキーを両方押さえたままで,
KCHRメニューから Convert to Dead Key を選びます. すると, Dead Key を編集
する表が出てきますから, それに必要なキー割り当てを並べます. どのようにし
たらよいかは, たとえばアクサン・テギュやウムラウトをつけるデッド・キーの
表を見てみればわかります. (蛇足ですが, option と「ろ」を押さえたままポイ
ンタを操作するのは, トラックパッドがなかったらむずかしい...) また,
delete キーのすぐ左のキーにも何も割り当てられていませんので, 私はついで
にキートップの刻印にあわせてバックスラッシュと縦棒を割り当てています. こ
れらは「む」のキーに割り当てられてはいますが.

編集が終わったら保存し, Classic OS の System Folder/System の中に入れれ
ば Classic の中で使えます. このファイルに .rsrc という拡張子をつけて
~/Library/Keyboard Layouts/ あるいは /Library/Keyboard Layouts/ に置け
ば, OS X で使えます.

以上です.

沼倉 宏
h...@fm2.seikyou.ne.jp
nu...@mtl.kyoto-u.ac.jp

# こんなことをに時間をかけなくてもいいように, はじめからUSキーボードつき
で購入したらよさそうなものと思う方もおいでかもしれません. でも, emacs や
egg を使うときは control キーが A のすぐ左にないと...

新着メール 0 件