私はGUIとコマンドラインインターフェイスの両方を持つInkscapeという描画プログラムを使用しています。コマンドラインで使用する場合は、ハードコーディングされたユーザー固有の構成ファイルを使用してのみ制御できる多くのオプションがあります。
$HOME/.config/inkscape/preferences.xml
構成ファイルには、常にGUIで最後に使用したオプションが含まれていますが、スクリプトの作成時に間違っている可能性があります。
この問題を解決するために、スクリプトは構成ファイルのコピーを保存し、それを標準の構成ファイルに置き換えてプログラムを実行し、保存した構成ファイルを再コピーします。
これはうまくいきますが、それほどきれいではありません。たとえば、2つのスクリプトインスタンスを同時に実行すると、正しく機能しません。
Unixでは、プログラムにハードコードされたパス名ではなく、私が望む場所から設定ファイルを取得するようにプログラムを偽造することを行うよりきちんとした方法がありますか?リンクに関連するものやBSD刑務所のようなものがありますか?
ベストアンサー1
Inkscapeにはこの問題を解決する機能があります0.47から:
$ INKSCAPE_PORTABLE_PROFILE_DIR=/some/other/path inkscape --args
スクリプトのカスタムpreferences.xml
ファイルをここに入れます。これを実行すると、Inkscapeは通常保存する他のすべてのファイルでいっぱいになる/some/other/path
ため、専用ディレクトリにする必要があります。~/.config/Inkscape