Focus of Interest -info-
Clumns for iOS, OS X, and more...
Navigation

OS X LionでX11がカーネルパニック

 OS X Lionで今度はX11がカーネルパニックを起こした。
 どういう訳だか、
xeyesどころかGimpInkscapeなどのX11アプリケーションを起動しても問題もないのに、/usr/X11/bin/xterm, /usr/X11/bin/uxtermなどX11ターミナルを起動した途端にカーネルパニックが起きる。X11はすべてLion標準の環境である。/Applications/Utilities/X11.appをダブルクリックして立ち上げると自動的にxtermが起動するため、xtermのウインドウが開いた途端にカーネルパニックが起きてしまう。Terminal.appからX11コマンドを叩いて起動したりして、xtermを開かなければカーネルパニックが起きないという理屈だ。
 ところが、新しく作成したユーザの環境であれば、
X11.appxtermuxtermもちゃんと起動することが分かった。新ユーザと自分の違いはデフォルトのシェル環境変数だけである。ひょっとして…と、デフォルトシェルを慣れ親しんだ/bin/tcshからLionのデフォルトである/bin/bashへ切り替えたところ…起動した。xtermuxtermも起動するし、カーネルパニックも起きなくなった。環境変数もtcshとほぼ同じに設定したが何も起きない…。原因を突き止めるまで何度カーネルパニックを起こしたことか…orz
 これ以上突き詰めてはいないが、
/bin/tcshLionxterm, uxtermなどのX11ターミナルは相性が悪いのか?
 しかし
xterm上でtcshが起動するだけでカーネルパニックとは…せめてX11core dumpするまでに留めておけないものかねぇ。
 まだまだ
Lionには危険なバグがたくさん潜んでいそうである。

xterm

InkscapeをSnow Leopardで安定させる

 オープンソースのベクトル画像編集ツール、Inkscapeを使いこなそうと四苦八苦中。Illustratorは個人ではとても買えないものね(買えたとしても毎年のバージョンアップお布施にはとてもじゃないがお付き合いできない)。
 Inkscapeもこまめにバージョンアップされているが、まだ0.47SVGを完全サポートするところまで行き着いていないらしいが、個人が普通に使う機能さえちゃんと動けばいいんだよね。その一方で「ちゃんと」にコツが必要だったりもする。
 以下、Snow LeopardInkscape 0.47を動かすときの注意点などをまとめておく。
  1. アプリケーション版(Inkscape.app)の起動を速くするには
     X11.appの環境設定で、セキュリティ>接続を検証をオフにしておく。Gimp.appの場合も有効の気がする。
  2. コピー/ペーストを有効にするには
     未だに標準のままではコピー/ペーストができない。
     X11.appの環境設定で、ペーストボード>CLIPBOARDが変更されたときにペーストボードをアップデートをオフにする。ただし、これをオフにしてしまうとMac OS XのアプリとX11アプリとの間でクリップボードを共有できなくなってしまう。その都度オン/オフしなければならないのが面倒ではある。
  3. Inkscape起動時にlocale設定エラーを抑止
     0.47では、Inkcape環境設定を切り替えれば、UIは日本語対応となる。ところがコンソール.appで起動ログを見ると、

    Setting Language: sjis.UTF-8
    Using the fallback 'C' locale.

    てな具合で、locale設定をミスっているので、ここは無理やりlocaleを書き換える。もう少しエレガントな方法もあるかも知れないけど
     /Applications/Inkscape.app/Contents/Resources/bin/inkscapeというInkscape本体の起動スクリプトをvimなどのエディタで編集し、以下の2行をコメントアウト。

    #export LANG="`grep \"\`echo $LANGSTR\`_\" /usr/share/locale/locale.alias | \
    # tail -n1 | sed 's/\./ /' | awk '{print $2}'`.UTF-8"

    その代わりに、次の行を追加。

    export LANG="ja_JP.UTF-8"

  4. テキスト入力でクラッシュするバグの回避
     これが一番頭痛の種。とにかくどんなテキストを入力しても、次のエラーを吐いてInkcapeが落ちてしまう。

    Gdk:ERROR:gdkinput-xfree.c:336:_gdk_input_grab_pointer: assertion failed: (input_window != NULL)

     この問題はMac OS Xに限らずLinuxでも起こっている模様。原因どころか対処方法もなかなか見つからなかったのだが、ようやくそれらしき方法をslashdotで発見。多言語サポート上の問題らしい。
     やり方は3.と同様にInkcapeの起動スクリプトを修正する。次の一行を追加するだけである。

    export GDK_NATIVE_WINDOWS=1

 以上で、ようやく気持ちよく動くようになった。まぁそれで描く絵のレベルが上がるわけでもないんだけれどねぇ。

お絵書きの練習

 Inkscapeの使い方を練習するために、「とある科学の超電磁砲」オープニングの1場面をトレスしてみました。ついでに、「Arts」のページも新設(左メニュー)。まだ一枚だけだけれどね。
 うーん、
Inkscapeをちゃんと使うのは初めてなんですが、なかなか難しいですねぇ。Illustratorと比べると軽快に動くのですが、意図とは違う動きをしてしまって困ります。使い方が悪いのか、バグなのか判然としないのが苦しいところ…。Mac OS XのInkscapeはX11上で動作しますが、突然ポインタが飛んだりもするのでMagic MouseとX11との相性が今一つのような気もします。
 1場面のトレスと言っても、エフェクトが思いっきりかかっているので、線や塗りの境界線、色はほとんど適当。毎日、1要素くらいずつちびちび描いたので3カ月くらいかかってますかねぇ。途中で0.47がリリースされて戸惑ったり…。でも、
Inkscapeだけでかなり行けることは分かりました。やってみたいこともあるんで、またゆっくりやります。

とある科学の超電磁砲