ボトルフックは CrossOver
で作成したボトルを自動的にカスタマイズさせる仕組みです。動作させるにはスクリプトを使用するため、柔軟にカスタマイズできます。例えば、ボトルフックではドライブ名、レジストリ設定、C:
ドライブの内容などを修正できます。このボトルフックで特に便利なのは、配布先に応じて、またはユーザーごとに、ボトルをカスタマイズできることです。
ボトルフックで作成される3つのレベル:
CrossOver
がroot権限でインストールされている場合、ルート以外のユーザーのボトルを含む、システム上の全てのボトルにシステムワイドフックが適用されます。システムワイドフックはマシンの構成やハードウェアに応じて、ボトルを適応させる場合に便利です。このボトルフックは$CX_ROOT/support/scripts.d
ディレクトリにあります。
ユーザーフック -
システムワイドフックと同じですが、1ユーザーのボトルだけに適用されます。ユーザーフックはシステムワイドフックが動作した後に動作します。このボトルフックは
~/Library/Application Support/CrossOver/scripts.d
ディレクトリにあります。
各ボトルはフックセットを持つことができます。フックセットはルート以外の各ユーザーが使用する管理ボトルの設定に適しています。フックセットは自動的にボトルと一緒にアーカイブされるので、もしボトルが他のコンピューターで復元されても動作します。このボトルフックは
scripts.d
ディレクトリにあります。
それぞれのフックは所定のディレクトリに置かれるシェルスクリプトとしての実行可能ファイルです。フックの名前は
nn.name
の形式でなければいけません。nn
は2桁の十進数でフックが動作する順番を決定します。name
はドットとチルダを含まないフックの目的に沿った名前を付けなければいけません。
フックがコールされるイベントの解説:
ボトルが作成された時
hook
create template
template
パラメーターはボトルのベースとなるテンプレート名(例えば「win98
」)を示します。
ボトルがリストアされた時
フック
復元
ボトルが新しいCrossOverのバージョンにアップグレードされた時
フック
の古いバージョンのボトル
がらのアップグレード
old-bottle-version
はボトルが使われていた元のCrossOverのバージョンです。
ボトルにスタブが作成された時
hook
create-stub
published-wineprefix
このケースは、管理ボトルをルート以外のユーザーが最初に使用した場合に発生します。この場合、published-wineprefix
は /Library/Application Support/CrossOver/Bottles
に存在する、ルートユーザーが参照するコピーを示し、環境変数
$WINEPREFIX
は作成されたボトルスタブを示します。
ボトルスタブがアップデートされた時
hook
update-stub
published-wineprefix
このケースは、published-wineprefix
の中にある、管理ボトルの参照用コピーを管理者が更新した場合に発生します。ユーザーのボトルスタブは、更新しないでください。
全てのケースでフックはWineに関係して呼び出されます。それは以下の環境変数にセットされます:
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