Hi, I used an urxvt quite a while with xft fonts, and found an interesting thing: with the same font (in my case it was Redhat's Liberation Mono) the urxvt terminal is about 10% wider than gnome-terminal.
Then I examined the code src/rxvtfont.C and I have found that rxvt incorrectly treat the structure XGlyphInfo when it tests for the glyph widths. In particular the width (including the spacing) of the character is returned in the xOff member of the struct. Please see, e.g. http://keithp.com/~keithp/render/Xft.tutorial for details. So, here is my patch which fix this problem: --- src/rxvtfont.C.bukind 2007-11-30 14:36:33.000000000 +0600 +++ src/rxvtfont.C 2007-11-30 14:39:29.000000000 +0600 @@ -1171,12 +1171,21 @@ XGlyphInfo g; XftTextExtents16 (disp, f, &ch, 1, &g); +/* + * bukind: don't use g.width as a width of a character! + * instead use g.xOff, see e.g.: http://keithp.com/~keithp/render/Xft.tutorial + g.width -= g.x; int wcw = WCWIDTH (ch); if (wcw > 0) g.width = (g.width + wcw - 1) / wcw; if (width < g.width ) width = g.width; + */ + int wcw = WCWIDTH (ch); + if (wcw > 1) g.xOff = g.xOff / wcw; + if (width < g.xOff) width = g.xOff; + if (height < g.height ) height = g.height; if (glheight < g.height - g.y) glheight = g.height - g.y; } WBR, Dima. -- Dmitry Bukin. pgp key is here: http://wwwsnd.inp.nsk.su/~bukind/bukind-pgp-key.txt
pgpcXSDkh4rHA.pgp
Description: PGP signature
_______________________________________________ rxvt-unicode mailing list [email protected] http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode
