ボトルフックを使ったボトルのカスタマイズ

ボトルフックは CrossOver で作成したボトルを自動的にカスタマイズさせる仕組みです。動作させるにはスクリプトを使用するため、柔軟にカスタマイズできます。例えば、ボトルフックではドライブ名、レジストリ設定、C: ドライブの内容などを修正できます。このボトルフックで特に便利なのは、配布先に応じて、またはユーザーごとに、ボトルをカスタマイズできることです。

ボトルフックで作成される3つのレベル:

フックは一般的にはシェルスクリプトの実行ファイルで、上のフックディレクトリに保存します。フックの名前は、 nn.name の形式で指定し、nn はフックを実行する順番を指定した2つの10進数で、name にドットやダッシュを指定できませんが、フックの目的を指定します。

フックがコールされるイベントの解説:

フックは必ず、 Wine のコンテキスト中に呼び出されます。このため、--bottleを使用する必要はなく、次の環境変数を使用します:

CX_ROOT

CrossOverがインストールされるディレクトリへの絶対パス。

CX_BOTTLE

現在のボトル名。

WINEPREFIX

ボトルへの絶対パス。

ボトルフックは wine スクリプトを使用して WineLib や Windows アプリケーションをコールし 、レジストリの設定やボトルの他の設定を変更することができます。

このボトルフックのサンプルはドライブレターがY:にならないように修正しています。そしてユーザーの$HOMEディレクトリをH:にしています。

#!/bin/sh
rm "$WINEPREFIX/dosdevices/y:"
if [ ! -d "$WINEPREFIX/dosdevices/h:" ]
then
    ln -s -f "$HOME" "$WINEPREFIX/dosdevices/h:"
fi