Linux

2017年7月 7日 (金)

Fontconfigを使ってフォントの横幅を変える方法

ヒンティングの設定や、fontconfigかなにかの更新でurxvtの横幅が大きく変わることがあったので、フォントの横幅を変えて対処してみました。

もとのフォント設定はPrimaSansMono BTで、新たにPrimaSansMono BT2を作ってその横幅を縮めます。この設定は~/.config/fontconfig/fonts.confに加えました。

<match>
  <test name="family" compare="eq"><string>PrimaSansMono BT2</string></test>
  <edit name="family" mode="assign" binding="same"><string>PrimaSansMono BT</string></edit>
  <edit name="matrix" mode="assign">
    <matrix><double>0.95</double><double>0</double>
            <double>0</double><double>1</double>
    </matrix>
  </edit>
</match>

0.95のところの数字を適当に変えます。わたしの今の環境では、これを0.96にすると1倍と同じくurxvtの横幅が一気に150ドット伸びました。どこかに閾値があるみたいです。

urxvtの設定はxrdbに読みこませるリソースなどでおこないます。もともとPrimaSansMono BTだったのをPrimaSansMono BT2にします。

URxvt*font: xft:PrimaSansMono BT2:pixelsize=14,\
            [codeset=JISX0208]xft:FGHeiseiKakuGothic:pixelsize=16

2015年9月21日 (月)

dkmsの--kernelsourcedirは機能しない

dkmsの--kernelsourcedirは機能しない

この記事は残しておきますが、2.2.0.3-5で修正されたようです。回避策2のリンク先参照。

問題の説明

Debian GNU/Linux dkms version 2.2.0.3-2の話です。これを書いた時点での最新版です。

いろいろあって、カーネルソースが行方不明になるとdkmsはビルドに失敗します。そうするとDebianやUbuntuの場合は次のようなメッセージが出ます。

Error! Your kernel headers for kernel 4.1.7 cannot be found.
Please install the linux-headers-4.1.7 package,
or use the --kernelsourcedir option to tell DKMS where it's located

すでにlinux-headers-4.1.7パッケージはインストール済みで、さらに--kernelsourcedirを指定しても同じメッセージがでます。/usr/sbin/dksmの中を見ると、このメッセージを出すチェック部分には--kernelsourcedirの指定は効いていないようです。

回避策1

カーネルソース(ヘッダ)へは/lib/modules/kernel-version/buildと/lib/modules/kernel-version/sourceからシンボリックリンクが張られています。linux-headers-4.1.7パッケージのインストール先である/usr/src/linux-headers-4.1.7へのリンクに変更したら、正しく動きました。--kernelsourcedirは不要です。

元々のリンク先はカーネルをビルドしたディレクトリになっていました。linux-headersパッケージをインストールする時に張り直してくれないんだろうか? ビルドディレクトリを消してからヘッダをインストールすればいいのだろうか?

回避策2

ぐぐったらパッチがありました。4年前だよ。これの動作は未確認ですが。

その他のカテゴリー