Login
Immutable PageDiscussionInfoAttachments
clear/note/2012-12

MMA

2012年12月

12/19

Xにおけるフォントについて、ちゃんと理解していなかったのでまとめておく。

Xでフォントを扱う方法は大きく2つに分けられる。

APIレベルで見るとさらに選択肢が分かれる。コアフォントの描画にはXlibやXCBのような低レイヤーのライブラリが使える。XftはXlibからは使えるが、調べた限りXCBからは使えなさそう(ライブラリ関数が見当たらない)。他に、GTK+の一部であるpangoを使うこともできる。pangoはレンダリングにXftとcairo(ベクタグラフィクスライブラリ)を使うことができるらしい。XlibならXftを直接叩けるが、XCBを使う場合はcairoを使うのが推奨されているらしい(cairo-xcbというのがあってPixmapを取り出せる。例えばi3はこれを用いていたはず)。ツールキットを使う場合も、GTK+なら言うまでもなくpangoを使うことになる(そして最終的にXftなりcairoを使う)だろうし、Qtの場合も内部で同様の仕組みが実装されているはず。

12/23追記: cairo単体でも文字列描画はできるらしい。

方式とライブラリの対応
Xlib -- core font, Xft
XCB -- core font
pango -- Xft
      `- cairo
cairo

他にもOpenGLとかでは独自の方法があるだろう、多分。ライブラリそのものを指すのではない「Xft」は「Xサーバでなくクライアント側で描画を行い、フォントの管理をfontconfigで行う方式全般」と解釈した方が良さそうな気もする(最初はXftしか無かったので、同様の方式全般を指す言葉として「Xft」と書いている文章が多い)。

12/27

特定ウィンドウのイベントを監視

監視対象のウィンドウをクリックして指定する。

id=$(xwininfo | grep 'Window id' | cut -f 4 -d \ ) && xev -id $id

clear/note/2012-12 (last edited 2012-12-27 00:04:25 by clear)