June 25, 2010

A hack to allow editing the charset and the lang in a font on fontconfig

Background

fontconfig is scanning a font and gathering the information to see what kind of character sets it's possible to support. being used to pick up the certain font according to  a request from a user. having said that all of the fonts doesn't necessarily have certain coverage of the glyphs for certain character sets. so given that missing glyphs are not a big deal or still looks good with a fallback font for them, there should be needs to use such fonts for the certain language anyway.

Syntax

After this hack, two elements are available. <charset> to update the character sets information a.k.a. FcCharSet and <langset> to update the language coverage information a.k.a. FcLangSet. in either case, the element has to have the language name that is available as orth file in fontconfig but without .orth suffix, as CDATA. it looks like:

<match target="scan"> <test name="family"> <string>HanaMin</string> </test> <edit name="charset" mode="assign" binding="strong"> <charset>ja</charset> </edit> <edit name="lang" mode="assign" binding="strong"> <langset>ja</langset> </edit> </match>

And you have to run fc-cache again to re-generate the fontconfig cache file because the above rule only affects the scan phase. then starting to match HanaMin for serif:lang=ja in this case. which originally has zh-hk, zh-mo and zh-tw coverage.

Code

See private git repo

June 1, 2010

How to reset the background on GNOME desktop (with unusual way...)

ニッチな需要かもだけど、どうなってんのという感じで。

背景画像や背景色の変更はGNOME上ではgnome-appearance-propertiesで行う。ここを一度でも変えると個々人の設定として記録される。ディストリビューションによっては毎リリースごとテーマを変えてくるものもあり、新しいバージョン入れた!って気分を味わえなくてつまらないので、これを強制的にリセットする方法を探してみた。

といってもそんな大した話ではないけど、まずひとつ。/desktop/gnome/background/picture_filenameというキーがあって、こいつをクリアすると背景画像がデフォルトのものに戻る。が、しかし、再びgnome-appearance-propertiesを起動すると設定したものへまた戻ってしまう。
で、もうひとつ。$HOME/.gnome2/backgrounds.xmlというファイル。ここにも背景画像、背景色に関する情報が記録される。両方消すとデフォルトのものが正しく適用されるようになる。

おしまい。