Re: [PATCH] gitk: use symbolic font names "sans" and "monospace" when available
On Thu, 8 Mar 2012, Jonathan Nieder wrote:
Show 23 quoted lines
> The following only concerns systems using X and the client-side font
> rendering framework from freedesktop.org. Windows and Mac OS X are
> not affected.
>
> Starting with version 8.5, Tk uses freetype and fontconfig by default
> to render fonts on platforms that support it. Gitk currently defaults
> to the font Helvetica for the interface and Courier for diffs, and
> both unfortunately look rather bad on screen in the default
> configuration on many Linux distros with anti-aliasing and poor
> hinting.
>
> It is better to default to "sans" and "monospace", which are mapped by
> fontconfig to some appropriate font of the sysadmin and user's
> choosing (typically Bitstream Vera Sans and Mono). The result looks
> more sensible and it makes gitk feel like a well-behaved software
> citizen since its fonts match other native apps.
>
> This patch does not change the appearance of gitk for users that have
> already run it, since gitk uses the remembered UI and diff font names
> from ~/.gitk
>
> Requested-by: Michael Biebl <biebl@debian.org>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Sounds reasonable to me.
Acked-by: Mark Hills <mark@pogo.org.uk>
Show 32 quoted lines
> ---
> Hi,
>
> A variant of this patch that just unconditionally set the fonts has
> been in Debian for more than a year, but just now I finally got around
> to making it conditional. Tested with tk 8.5 (where fontconfig is
> used) and tk 8.4 (where it isn't) and the autodetection seems to work.
>
> Sensible?
>
> Jonathan
>
> gitk-git/gitk | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/gitk-git/gitk b/gitk-git/gitk
> index 64ef3c40..6981cb20 100755
> --- a/gitk-git/gitk
> +++ b/gitk-git/gitk
> @@ -11426,6 +11426,11 @@ if {[tk windowingsystem] eq "aqua"} {
> set mainfont {{Lucida Grande} 9}
> set textfont {Monaco 9}
> set uifont {{Lucida Grande} 9 bold}
> +} elseif {![catch {::tk::pkgconfig get fontsystem} xft] && $xft eq "xft"} {
> + # fontconfig!
> + set mainfont {sans 9}
> + set textfont {monospace 9}
> + set uifont {sans 9 bold}
> } else {
> set mainfont {Helvetica 9}
> set textfont {Courier 9}
> --
Mark