ウェブサイトが無意味にフォントを固定してくるのが気に入らない。PゴシックだのArialだのHerveticaだの気に食わないフォントを強制されなくてはいけないのか。Pゴシックはないんだからいいじゃん」と思うかもしれないが、それでは済まない。Pゴシックはメトリック互換フォントを設定せざるをえないのだ。Arialに関してはUI部品に本当に使っていて、はみだすケースが少なくないので、変更はより難しい。なくても指定されるのは気に入らない。必要ないのではないか。私としては読みやすいフォントを使いたいのだ。望ましいのはユーザースタイルシートで上書きすることである。ご丁寧にどのサイトもbodyやpではなくスコアの高いところにフォント指定してくれやがるのでそうはいかない。幸いにも私の場合プロファイル切り替えプログラムを使っているのでそのブラウザで見るサイトというのは決まっている。手っ取り早いのはサイトで指定されているフォントをoverrideすることである。</match>とかやっているのだが、やはり弊害が大きく、条件は限定したい。意外とイケてないFontConfigの仕様FontConfigって結構イケてるソフトウェアだと思っていたのだけれど、そうでもない。環境変数のような動的要素は全然使えない。XDG_CONFIG_HOMEだけは理解するのだけど、そのロジックはinclude内のprefix="xdg"である。~/.config)のどちらかだけ。~は使えるのだが...条件式も書けないし、アプリケーションごとの設定もできない。いうか、設計がイケてない。これをシンボリックリンクとして切り替える、というような方法だ。これは優先度が高いところでincludeするほど影響が大きく、制約される。この方法ではアプリケーションがFreeTypeをロードしたあとであればこのリンクを切ってもリンク先のディレクトリをホールドし続ける。FontConfigが再度シンボリックリンクを解決することはない。よいのは環境変数$FONTCONFIG_FILEを使う方法だ。これによりカスタムのfonts.confを使わせることができる。ファイル向けの$FONTCONFIG_FILEとディレクトリ向けの$FONTCONFIG_PATHがあるのだが、$FONTCONFIG_PATHにしてもNN-XXXX.confをロードするわけではなく、単にそのディレクトリのfonts.confをロードするだけである。どちらも複数指定はできない。このふたつがある意味がないし、柔軟性が全くない。FontConfigがいまいちだ。固有のfonts.confを使わせるだいたいこんな感じである。chromiumこの設定ファイルにはしたいことだけ書けばいいわけではなく、/etc/fonts以下でやっているようなことが全て必要になる。(いや、多分/etc/fonts/conf.dをここで指定する必要はない)。これで通常の設定ファイルがロードされる。この設定ファイル内で書いた内容はincludeの前でも後でも優先され、overrideできる。この内容を基本として固有の内容を書き足せば良い。効力は通常されるどの設定ファイルよりも強いので注意が必要。この方法は汎用性があり、エディタでフォントを使い分けたいときにも有効に働く。sans-serifやmonospaceのような抽象フォントを指定しておき、それをoverrideすれば良い。Pゴシックなどをグローバルに置き換えることも避けられる。chooserが従来はこのような余計なコマンドの実行に適していなかったので、特殊なことをしなくても実現できるように変更した。従来とは互換性がない。従来の強引な手法が訂正されたため、設計も改善された。これで例えば次のようにして任意のフォントプロファイルで起動できる。