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