« Inside Leopard: ついにMac OS XでA2DPが利用可能に | トップページ | iPod touch 1.1.1でiJailBreak 0.3 »

Inside Leopard: X11.appと日本語環境の問題

Mac OS X 10.5 LeopardではX11.appがX.orgベースのR7.2になり、標準でインストールされるようになりました。

Leopardx11

しかし、日本語環境に関しては10.4(Tiger)とかなり違っていますので、いくつか環境整備が必要なっています。以下に基本的な問題と対処方法についてまとめておきます。

日本語キーボード配列を自動認識しない

LeopardのX11.appではデフォルトのキーマップが101USキーボード配列になっており、106日本語キーボードを自動認識してくれません。この場合、xmodmapコマンドによるキーマップの変更が必要になってしまいますが、幸い、Acanthopanaxさんの日記「Leopard X11のMacBook Pro JISキーボード用Keymap」で日本語配列に対応したキーマップ一覧が紹介されているため、これを利用させて頂くとよいでしょう。xmodmap <キーマップファイル>で問題ないことを確認したら、このファイルをホームディレクトリ直下に~/.Xmodmapというファイル名で保存しておけば次回X11.app起動から自動的に読み込まれます。

UTF-8対応のxterm(uxterm)がない

この問題に対処するには、xtermをUTF-8対応でコンパイルし直すか、MacPortsからurxvtを導入するなどの方法があります。前者については、再びAcanthopanaxさんの日記「Leopardで-u8対応のxtermをビルド」が参考になります。後者については、Leopard対応のMacPorts 1.5のバイナリ(ダウンロードリンク)が公開されていますので、これを導入後、以下のコマンドでurxvtが導入できます。

$ sudo port -v install rxvt-unicode

kinput2.macimが未対応

ことえりをX11のIMとして利用できるkinput2.macimが現時点でLeopardに対応していません。

$ sudo port -v install kinput2-macim
--->  Fetching kinput2-macim
Error: Target org.macports.fetch returned: Sorry, kinput2-macim is not supported yet on your platform.
Warning: the following items did not execute (for kinput2-macim): org.macports.activate org.macports.fetch org.macports.extract org.macports.checksum org.macports.patch org.macports.configure org.macports.build org.macports.destroot org.macports.install
Error: Status 1 encountered during processing.

仕方がないので、通常のkinput2とcannaを導入し、当面の間X11上ではcannaで日本語入力することにします。MacPortsからkinput2を導入すると依存関係で自動的にcannaもインストールされます。

$ port deps kinput2
kinput2 has library dependencies on:
        canna
$ sudo port -v install kinput2

portコマンドが終了したら、cannaserverが自動起動するようにlaunchctlコマンドで設定しておきます。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.canna.plist

$ ps -ax|grep cannaserver
36459 ??         0:00.00 /opt/local/sbin/cannaserver -u canna -syslog
36464 ttys001    0:00.00 grep cannaserve

kinput2の設定は、~/.MacOS/environment.plistと~/.xinitrcで行います。

$ vi ~/.MacOS/environment.plist
~/.MacOS/environment.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LANG</key>
<string>ja_JP.UTF-8</string>
<key>XMODIFIERS</key>
<string>@im=kinput2</string>
</dict>
</plist>
$ cp /usr/X11/lib/X11/xinit/xinitrc ~/.xinitrc
$ vi ~/.xinitrc
~/.xinitrc:
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
        :
[ -f "/opt/local/bin/kinput2" ] && /opt/local/bin/kinput2 & exec quartz-wm

上記設定が完了したら、Mac OS Xに再ログインした後X11.appを再起動します。

なお、ホームディレクトリに~/.xinitrcがある状態で最初にX11.appを起動したとき、以下のようなダイアログが表示され~/.xinitrcを無視するかどうかを聞かれます。この場合は、必ず「No」を選択してください。

Leopardxinitrcwarning

もし、「Yes」を選択してしまった場合などで、~/.xinitrcが読み込まれない状態になってしまった場合は、~/Library/Preferences/ディレクトリ内のorg.x.X11.plistファイルを削除し、X11.appを再起動して、上図ダイアログに「No」で答えてください。

Cmd-TabでX11.appに切り替えたときXのウィンドウが手前に来ない

日本語環境の問題というわけではありませんが、X11.app 1.0の初期のバージョンにあったバグが再発しています。ワークアラウンドとしては、Cmd-TabでX11.appを手前にした後、一度Exposeを起動するか、「ウィンドウ」メニュー「次のウィンドウ」に割り当てられているキーCmd-→をタイプすることでX11の各ウィンドウも手前に表示されるようになります。

その他、たちゃなさんのMac OS X環境整備に関する秀逸なドキュメントBeginning OS XのLeopard版「Begening OS X 10.5」の草稿が公開されています。こちらも大変参考になりますので、是非ご覧ください。

【追記 2008.2.12】

上で述べたkinput2.macim以外の3つの問題は、Mac OS X 10.5.2 UpdateでインストールされるX11.app 2.1.1で改善されました。

|

« Inside Leopard: ついにMac OS XでA2DPが利用可能に | トップページ | iPod touch 1.1.1でiJailBreak 0.3 »

mac」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Inside Leopard: X11.appと日本語環境の問題:

» Leopard X11 その2 [HAT]
その1からのつづき やはり今回のX11の仕様変更/各種バグについては、色々と話題になっているようだ。 日本語キーボードの配列に対応してないという話が出ているが、私は以前から~/.Xmodmapを使っているので今回は気付かなかった。これって、相当昔の問題が再発してるだけですね。 昔から使ってる~/.Xmodmap http://www006.upp.so-net.ne.jp/t_tanaka/data/Xmodmap 他に、kinput2とか、X11 Clientのウインドウが全面に出てこない... [続きを読む]

受信: 2007年10月28日 (日) 23時51分

» MacBook環境整備 [uep on hayate]
Leopardのリリースに合わせMacBookを購入。迷いに迷って黒にした。 ... [続きを読む]

受信: 2008年1月 5日 (土) 22時19分

« Inside Leopard: ついにMac OS XでA2DPが利用可能に | トップページ | iPod touch 1.1.1でiJailBreak 0.3 »