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

😃 mattintosh note 📝

Hello Raspberry Pi!

Winetricks を AppleScript で GUI 化する

Homebrew とかで zenity をインストールしていない環境用に Winetricks の処理の一部を(やや無理矢理)AppleScript で表示できるようにしたもの。MacPorts 版の Winetricks は依存関係に zenity が含まれているので必要なし。


2013-04-09 追記:AppleScript だけで出来ました


#!/bin/bash
export LANG=ja_JP.UTF-8

case $(
    osascript -e '
        on run argv
            tell application "System Events"
                activate
                (choose from list argv with title "Winetricks") as string
            end tell
        end run
    ' "アプリケーション" "ベンチマーク" "ライブラリ" "ゲーム" "セッティング"
) in
    "アプリケーション")
        set apps;;
    "ベンチマーク")
        set benchmarks;;
    "ライブラリ")
        set dlls;;
    "ゲーム")
        set games;;
    "セッティング")
        set settings;;
    *) exit;;
esac
set winetricks "$1" list
echo "$@"

while read
do
    aList[${#aList[@]}]="$REPLY"
done < <("$@")

case ${cmd=$(
    osascript -e '
        on run argv
            tell application "System Events"
                activate
                (choose from list argv with title "'"$*"'") as string
            end tell
        end run
    ' "${aList[@]}" | cut -d ' ' -f1
)} in
    false|"") exit;;
    *) set winetricks "${cmd}";;
esac
echo "$@"
exec "$@"


例えば winetricks-gui という名前で保存して、実行権限つけて

$ winetricks-gui

で、呼び出すと画面にカテゴリリストが表示されるので処理を選ぶ。

Winetricks

数秒経過後に詳細リストが表示されるのでインストールしたいものや設定したい項目を選んで[OK]を押せば Winetricks のコマンドが実行される。現在表示中のリストがどのリストかはウィンドウのタイトル部分に表示されます。

Winetricks


リスト表示したまま一定時間経過すると exit するのでその場合はリストウィンドウを閉じて最初からやり直し。