« 2007年9月 | トップページ | 2007年11月 »

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で改善されました。

| | コメント (0) | トラックバック (2)

Inside Leopard: ついにMac OS XでA2DPが利用可能に

Mac OS XのBluetoothでは従来、ヘッドセット用のプロファイル(HSP)はありましたが、ステレオヘッドフォンのプロファイル(A2DP)には対応していませんでした。Mac OS X 10.5 Leopardでは、ついにA2DPが利用可能になっています。

私の場合は、携帯電話用に使用しているiTech Clip R35をMacBookとペアリングしてみました。

Itech_clip_r35

ペアリングの方法は、ヘッドセットをペアリングモードに変更し、メニューバーのBluetoothアイコンから「Bluetoothデバイスを設定...」を選んで、「Bluetooth設定アシスタント」を起動します。デバイスの種類の選択画面ではヘッドフォンの選択肢はありませんが、ヘッドセットを選択してペアリングを行って問題ありません。

設定が完了すれば、システム環境設定「サウンド」の出力先にヘッドセット以外にヘッドフォンが選択できるようになっています。

Sound_control_panel

iTunesで試してみたところきちんとステレオ音声で聞くことができました。音切れもなく音質も悪くありません。また、今回のBluetoothのアップデートでは、音声/ビデオ リモート制御プロファイル(AVRCP)にも対応しているようで、iTech Clip R35のボタン操作で、再生、ポーズ、次の曲、前の曲をiTunesに対して制御できるようになっていました。

| | コメント (0) | トラックバック (1)

Inside Leopard: Java SE 6がない

ちょっと信じがたいのですが、Mac OS X 10.5 Leopardには、Java SE 6が含まれていません。

No_java6_on_leopard

さらに、以前はDeveloper PreviewとしてDeveloper Connectionに公開されていたJava SE 6のベータ版でさえ、いつの間にかダウンロードリンクがなくなっています。これは、単に正式版が間に合わなかったのか、それとも今後Mac OS XでJavaをサポートしていく意思がないことを表しているのでしょうか。

少なくとも、300の新機能にいれてもらえない程、AppleにとってJavaに対するプライオリティが下げられていることは間違いなさそうです。

Java SE 6はSolaris、Linux、Windows向けには1年近く前に正式版がリリースされいるのに、Java SE 6を期待してLeopardを購入したJava開発者にとっては非常にがっかりさせられる結果になっています。

Mac OS XとJava環境については、何か情報が得られ次第こちらでもお知らせします。

| | コメント (3) | トラックバック (0)

MacBookをMac OS X 10.5 Leopardに移行しました。

これまではMac OS Xのアップグレードは、リリースされてからしばらく様子を見て、アプリケーションの互換性などの情報を集めてから行っていました。しかし、Leopardに関しては、なぜかあまり不安な感じがしません。Mac OS Xのマイナーアップデートも5回目を迎え、安心感が高まってきたせいだと思います。

現在、Tiger(10.4)が入っているMacBookに対して、アップグレード(上書き)インストールを行うとしてもなんら不安もなかったのですが、いつものように新しいOSのクリーンインストール後に、/Usersだけをバックアップから復元することにしました。

Mac OS Xのアプリケーションの多くはアプリケーションファイルのコピーだけで済むものが多く、私の場合これらのアプリケーションは、/Applicationsではなく、~/Applicationsフォルダに置いています。そのため、ホームディレクトリを復元すれば、これらのアプリケーションは直ぐに新しいOSで使い始めることができるのです。

インストーラから導入したアプリケーションは、Leopard導入後に再インストールが必要ですが、私の場合、そのようなアプリケーションはそれほど多くないので、大した労力ではありません。参考までに私の行ったLeopard移行手順を示しておきます。

1. システム全体をバックアップ

ホームディレクトリだけのバックアップでも構いませんが、後でTiger(10.4)に戻したくなる可能性もあるので、システム全体を外付けハードディスクにバックアップしておきます。私の場合は、いつものようにrsyncスクリプトで行いました。

$ sudo ~/bin/rsync_osx / /Volumes/BackupHD

2. Leopard(10.5)のクリーンインストール

LeopardのCDをMacBookに入れ、「Install Mac OS X」アイコンをダブルクリックし、「再起動」ボタンを押します。ここでは、クリーンインストールを行うため、「インストール先の選択」画面でボリュームMacintosh HDを選択し、画面下の「オプション」ボタンを押して、「消去してからインストール」を選びます。

インストールが完了した後、最初の再起動でアカウント設定のウィザードが起動するため、ここでTiger(10.4)の時と同じユーザ名でアカウントを作成します。

ここで暫くスッピンの状態のLeopardを楽しみます。

3. バックアップからホームディレクトリのリストア

最後に、バックアップした外付けハードディスクからホームディレクトリだけをリストアします。私はリストアにもrsyncを使用しましたが、ホームディレクトリのリストアには、/Applications/Utilitiesディレクトリにある「移行アシスタント」を使用してもできると思います(おそらく、こちらの方が簡単でしょう)。しかし、私はこのツールに慣れていないので、バックアップに使ったrsyncスクリプトで行いました。

rsyncでリストアするときは、そのユーザでログインしたまま行うとコピーに失敗するファイルが出てくる可能性があるため、最初にrootアカウントを有効にし、リストアはrootアカウントで行いました。rootアカウントを有効にするには、/Applications/Utilitiesディレクトリの「ディレクトリユーティリティ」を使用します。変更するための鍵アイコンをクリックした後、「編集」メニューから「ルートユーザを有効にする」を選択して、rootのパスワードを設定します。

その後一旦ログアウトし、ログインパネルで「その他のユーザ...」を選んでrootユーザでログインします。後は、ターミナルを起動し、バックアップしたディスクにコピーされているrsyncスクリプトを使って、ホームディレクトリをリストアします。以下のような感じです。

念のため今のホームディレクトリもバックアップしておく
# mv /Users/foo /Users/foo.bak

外付けHDからホームディレクトリをリストア
# cd /Volumes/BackupHD/Users/foo/bin
# ./rsync_osx /Volumes/BackupHD/Users/foo /Users

リストアしたアカウントでログインし直せば、ホームディレクトリに保存してあった以前のファイルとアプリケーションが復活しています。

さて、今後のシステムバックアップのワークフローを従来通りrsyncでいくか、Time Machineでいくか、悩ましいところです。

| | コメント (0) | トラックバック (0)

« 2007年9月 | トップページ | 2007年11月 »