MacPorts や Homebrew でインストールした Wine を実行するアプリケーションを作成します。AppleScript を使うと Automator で作成したものよりも起動が早いです。ドラッグアンドドロップによるファイル入力の処理もできます。
以下の AppleScript はアプリケーション単体で起動すれば Wine エクスプローラーを起動し、ドラッグアンドドロップやコンテキストメニューからファイル入力があった場合はそのファイルを実行するものです。AppleScript エディタに貼り付けて「アプリケーション」として保存して下さい。
Homebrew の場合は property WINELOADER
のコメントアウト部分(--
)を MacPorts と入れ替えて下さい。WINEPREFIX
は未指定なので必要なら property WINELOADER
の部分を WINEPREFIX=$HOME/.mywine /opt/local/bin/wine
のような感じにして下さい。
MacPorts の fontconfig はユーザーフォントディレクトリ(~/Library/Fonts)が検索対象に含まれていません。FONTCONFIG_PATH
を XQuartz のものに設定することでユーザーフォントディレクトリを認識させることができます。[詳細]
-- WINELOADER property WINELOADER : "/opt/local/bin/wine" -- MacPorts 用 -- property WINELOADER : "/usr/local/bin/wine" -- Homebrew、自己ビルド用 -- wine 実行部分 on main(input) -- try で終了時のエラーを抑制する try do shell script WINELOADER & space & input -- XQuartz の fontconfig 設定ファイルを使用する場合(ユーザーフォントディレクトリを認識させる) -- do shell script "FONTCONFIG_PATH=/opt/X11/lib/X11/fontconfig" & space & WINELOADER & space & input end try end main -- ドラッグアンドドロップやコンテキストメニューからファイル入力があった場合 on open argv repeat with aFile in argv -- ファイルパスを alias から POSIX パスに変換し、ひとまとめにして "start /Unix" を付加する。 main("start /Unix" & space & quoted form of (POSIX path of aFile)) end repeat end open -- Wine.app を単体起動した場合 on run -- Wine エクスプローラを実行 main("explorer") end run
カスタマイズ
Wine.app 作成後に Wine.app/Contents/Resources/Scripts/main.scpt
を AppleScript エディタで編集できます。
on run
の中身は choose file
でファイル選択式にすることもできたりします。その場合は start /Unix
や quoted form of
などで処理しないと WINELOADER に正しくファイルパスが渡らないことがあります。書式は on open
とほぼ同じです。with invisibles
を使うことで非表示ファイルを表示できます。
main("start /Unix" & space & quoted form of (POSIX path of (choose file))) -- 非表示ファイルを表示 -- main("start /Unix" & space & quoted form of (POSIX path of (choose file with invisibles)))
wineserver
の終了が遅い(デフォルトは3秒?)ようならば wineserver -p0
を事前に実行しておくと少し早く終了できるかも。以下は MacPorts 版の例です。
do shell script "/opt/local/bin/wineserver -p0;" & WINELOADER & space & input
ログウィンドウが必要な場合は do shell script
の部分を xterm -e [command] [args]
のようにすれば xterm 上で実行してくれます(一部のファイルが正しく開けないことがある?)。
アイコンは Contents/Resources/droplet.icns
で変更可能。Info.plist
の CFBundleDocumentTypes
キーを追加すれば EXE ファイル等との関連付けも可能です。詳しくは以下のスクリプトを見て下さい。
Wine.app 作成用スクリプト
上記のスクリプトに EXE、MSI、LNK ファイルとの関連付けを追加した Wine.app 作成用スクリプトを書いてみました。
[view raw]リンクからファイルを保存して、引数に WINELOADER のパスを指定して bash などで実行すればカレントディレクトリに Wine.app が作成されます。
bash wine_application_bundle_creator.sh /opt/local/bin/wine