Automator を使った Finder 用サービスのサンプルです。Finder で選択したファイルをコンテキストメニューからターミナルアプリケーションを経由して Wine で実行します。
WINELOADER
の部分は MacPorts 用なのでそれ以外の場合はパスを変更して下さい。ターミナルアプリケーションを経由するので WINEPREFIX
はシェルのプロファイルに書いてあるものがそのまま使われると思いますが、上手く行かないようであればヒアドキュメントの部分に export WINEPREFIX=$HOME/.mywine
というような感じで追加して下さい。
ファイルは start /Unix
で開くようにしているので msiexec /i
の記述をしなくても MSI ファイルが開けます。複数ファイルの同時起動にも対応していますがレジストリに悪い影響を与えるかもしれません。
※2013年04月13日にコードを修正しました。
# template: services # application: Finder # shell: /bin/bash # mode: stdin WINELOADER=/opt/local/bin/wine LANG=ja_JP.UTF-8 while read f do test -f "${f}" || continue tmp=/tmp/$(uuidgen) cat <<__EOF__ > ${tmp} && chmod +x ${tmp} && open ${tmp} #!/bin/sh LANG=ja_JP.UTF-8 trap "rm ${tmp}" EXIT ${WINELOADER} start /W /Unix '${f}' __EOF__ done
ターミナルを使用しない場合は MacPorts や Homebrew でインストールした Wine を AppleScript で Mac OS アプリケーションのようにすることもできます。詳しくは以下のリンクからどうぞ。
Mac で AppleScript を使って Wine.app を作成する - mattintosh note -hatena-