米国ではMacBook Airの出荷が始まったようですね。ネット上のあちこちで、ユーザレポートが公開されています。気になるのは操作のレスポンスなのですが。標準構成ではHDDが1.8インチ / PATAですからね。早く実機を試してみたいものです。

さて、今回は「X Window System」について。言わずもがな、UNIX系OSでは事実上標準のウインドウシステムだ。OS Xにも早い時期から移植され、やがてApple謹製のXサーバが提供されるようになり今日に至るわけだが、ここ数年間は目立った変更が行われていなかった。Leopardでは多くの変更が施されたため、その概要について説明してみよう。

LeopardのX11はココが違う

バージョン2.0となった「X11.app」

Leopardでは、デフォルトでX Window Systemがインストールされる。これまでは、初期インストール時にオプション画面で選択するか、追加インストールするしかなかったが、有無を言わさずユーティリティフォルダに「X11.app」がコピーされる。

アイコンの見た目や起動直後の様子など、一見すると違いの感じられないLeopardのX11.appだが、コードベースはTigerまでのXFree86から、X.OrgのX11R 7.2に変更されている。X.Orgは、XFree86からフォークしたプロジェクトであり、基本的な機能や設定のノウハウはXFree86と同じだが、細かい部分で差異が生じている。

LeopardのX Window Systemは、そのXFree86からX.Orgへの移行とは関係が薄い部分での変更が行われている。機能変更というよりは"仕様変更"に近く、独自の設定を加えて利用してきたユーザに混乱を引き起こしている。

その1つが、キーマップの変更。デフォルトのキーマップが101US配列に決め打ちされているため、106日本語キーボードでは押したキーと異なる文字が入力されることがあるのだ。自力でキーマップを用意し、「~/.Xmodmap」として保存すれば解決できる問題だが、少々面倒な話ではある。

X11.appの設定ファイルも、Tigerまでの

    ~/Library/Preferences/com.apple.x11.plist

から、Leopardでは

    /Library/Preferences/org.x.X11.plist

    ~/Library/Preferences/org.x.X11_launcher.plist

の2つに変更され、互換性は失われている。メニューに任意のアプリケーション(Xクライアント)を登録していた場合には、やり直しが必要だ。

ディレクトリ構成も一新。X11のシステム領域は、/usr/X11R6から/usr/X11に変更、システムワイドな設定ファイルが置かれる/etc/X11は廃止され、/usr/X11/lib/X11に変更された。ウインドウマネージャのquartz-wmも、/usr/X11R6/binから/usr/binに変わった。X11.appに至っては、/Applications/Utilities/usr/X11の2カ所に置かれる仕様に。合理的な理由が(少なくとも筆者には)認められない仕様変更が多い、というのがLeopardのX Window Systemの特徴だ。

LeopardのX11はココがいい

最大の変更点は、X11.appが単なるコマンドのラッパー(Yo、Yoのアレじゃないですよ)に変化したことだろう。試しに、Terminal.appから「xterm」や「glxgears」などのXクライアントを起動してほしい。Tigerまでは、DISPLAY環境変数を設定したうえでX11.appが起動していないかぎり、ディスプレイを開けない旨のエラーメッセージが表示されたはず。

Leopardでは、X Window Systemの起動まで含めて処理してくれる。DISPLAY環境変数を設定する必要も、X11.appを起動する必要もない。この変更は、AquaとX11の間に存在した"溝"を埋めるもので、よく考えられたものだろうとは思う。

しかし、手放しでは喜べない。DockにX11.appを登録すると、アイコンが2つ表示されてしまう問題も、このX11.appのラッパー化が原因だろう ( Dockは、/Applications/Utilities/X11.app/usr/X11/X11.appを別物として扱っている ) 。「~/.xinitrc」の処理されるタイミングが、Terminal.appから実行したXクライアントの起動後ということも悩ましい。DISPLAY環境変数には、「/tmp/launch-G6zAPm/:0」といったランダムな文字列を含む値が設定されているため、そのままではxonを使ったリモートからのXクライアントの起動ができないという問題もある。

DockにユーティリティフォルダのX11.appを登録すると、アイコンが2つ表示されてしまう

非公式版アップデータ適用のススメ

起動オプションを受け付けないのは困りモノ

以上のような仕様変更の妥当性はさておいて、不具合が散見されることには困ったものだ。

すぐに気付くのが、Xクライアントをメニューに登録したときの不具合。指定したコマンドライン全体をコマンド名として、つまり「xterm」とオプションの「-bg gray」を区別せず「xterm -bg gray」というコマンドとしてexecする仕様により、目的のXクライアントが実行できないのだ。

Finderのタスク切り替え機能 ([Command]+[TAB]キー) でX11.appをアクティブにしても、Xのウインドウが前面表示されないことも問題だ。

これらの不具合は、非公式なX11.appアップデータを適用することで解決できる。この記事を読んで思い当たる節があれば、最新バージョンのX11.pkg 2.1.3(2008年2月1日現在)をインストールしておこう。