読者です 読者をやめる 読者になる 読者になる

Yosemite上のWineskinでインストールしたアプリ上で日本語入力できるようにしたときのメモ

Wineskinは、Wineをラッピングして、Mac OS X上にお手軽にWindowsアプリケーションをインストール・起動できるようにするための素晴らしいツールです。

先日、Yosemite上にWineskinで簡単にWindowsアプリをインストールして喜んでいたのですが、真面目に使おうとしたら日本語入力できなくて残念だったので、できるようにするまでの過程をメモしておきます。

流れ

  1. Wineskinに普通にソフトウェアをインストールする
  2. XQuartz.appをインストールする
  3. MacUIMをインストールする
  4. Wineskinの設定を変更してXQuartz.appを使うように変える
  5. Wineskinに起動オプションを追加

Wineskinに普通にソフトウェアをインストールする

普通にインストールします。

XQuartz.appをインストールする

(インストールしていなければ)XQuartz.appをインストールします。

MacUIMをインストールする

MacUIMをインストールします。私がインストールしたのは0.6.16-2でした。

X11 環境の日本語入力に MacUIM(Mozc)を使う|mattintosh note (跡地) の「MacUIM のインストールと設定」を参考に、「標準の入力方式」を指定します。

同様に、X11 環境の日本語入力に MacUIM(Mozc)を使う|mattintosh note (跡地) の「X11 の設定」を参考に、 ~/.xinitrc.d 以下に uim-xim を起動するスクリプトを設置します。

具体的には、 ~/.xinitrc.d/uim-xim.sh

#!/bin/sh
/Library/Frameworks/UIM.framework/Versions/Current/bin/uim-xim &

という内容のファイルを作り、 実行権限を付加します。

これで、XQuartz.appを起動すると、uim-ximが実行された状態になるはずです。

Wineskinの設定を変更してXQuartz.appを使うように変える

Wineskinで作ったラッパーアプリをFinder上で右クリックし、「Show package contents」を選択すると、「Wineskin」というアプリがあるので、それをダブルクリックして起動します。

f:id:goura:20141220175505p:plain

すると↑このような設定アプリが起動します。

「Advanced」ボタンをクリックし、「Options」タブを開くと、「Force use of system installed XQuartz instead of using built in WineskinX11」というオプションがあるので、これを有効にします。

Wineskinは標準ではWineskinと一緒に配布されているXQuartzを使うのですが、それだとuim-ximを使うことができないので、これを普通のXQuartzを使うように変更するわけです。

Wineskinに起動オプションを追加

次に、Wineskinの起動オプションを追加する必要があります。

上記と同様に「Advanced」ボタンをクリックすると「Custom Commands」という項目があります。

f:id:goura:20141220180742p:plain

↑ここに

export LANG=ja_JP.UTF-8; export XMODIFIERS="@im=uim"; export GTK_IM_MODULE=uim

を入れます。これで、アプリが起動する際にuimを使うための環境変数が設定されます。

あとは、アプリを起動すれば、Shift+Spaceで日本語入力ができるようになるはずです。

…ただし、このブログを書くために試しに入れてみたサクラエディタでは、ダイアログ等以外ではインライン入力できませんでした。

f:id:goura:20141220182233p:plain

参考にしたページ

X11 環境の日本語入力に MacUIM(Mozc)を使う|mattintosh note (跡地)

その他メモ

  • Yosemiteでは ~/.MacOSX/environment.plist などはもう参照されていない。
  • Finderから起動されるアプリ等にも有効なシステムワイドな環境変数を設定したいときには $ launchctl setenv GTK_IM_MODULE uim のようにする。
  • だけど結局Wineskinのcustom commandで事足りたのでその方法は使わなかった