Subject: 24.2; Emacs ignores system-wide hinting settings

From: Jarosław Rzeszótko <[email-masked]>
Date: Tue, 29 Jan 2013 10:31:19 +0100

Hi,

Emacs ignores system-wide hinting settings when displaying fonts, when
using Gtk+3 and Linux (I didn't test Gtk+2, possibly there as well). I
have hinting set up in both ~/.Xresources:

Xft.hinting: true
Xft.hintstyle: hintnone

and in ~/.fonts.conf. All Gtk+3 and Gtk+2 respect those settings when
rendering fonts. To get emacs use a different hinting than the
"hintfull" style, I have to do the following in .Xresources:

Emacs.font: Monospaced:hintstyle=hintnone

Cheers,
Jarosław Rzeszótko

In GNU Emacs 24.2.1 (i686-pc-linux-gnu, GTK+ Version 3.4.4)
 of 2012-12-07 on the_computer
Windowing system distributor `The X.Org Foundation', version 11.0.11301901
Configured using:
 `configure '--prefix=/usr' '--with-xft' '--with-x-toolkit=gtk3'
 'CFLAGS=-g''

Important settings:
  value of $LC_ALL: pl_PL.UTF8
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: pl_PL.UTF8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: pl_PL.UTF8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  cua-mode: t
  electric-indent-mode: t
  global-hl-line-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  global-proel-mode: t
  proel-mode: t
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<backspace> SPC o n l y SPC w a y SPC t o SPC g e t
SPC E m a c s SPC t o SPC c h a n g e SPC t h e SPC
h i n t i n g SPC s t y l e SPC i s SPC t o SPC u <backspace>
s p e c i f y SPC i t SPC i n SPC t h e SPC . X r e
s o u r c e s SPC s p e c i f i c a l l y SPC f o r
SPC e m a c s SPC l i k e SPC t h i s : <return> <return>
E m a c s . f o n t : SPC C-x o C-x b C-g C-x 2 C-x
o C-x b . X C-g C-x C-f <backspace> <return> . X r
e s <return> C-x o M o n o s p a c e : h i n t s t
y l e = h i n t n o n e <next> <next> <next> <next>
<prior> <prior> <prior> <prior> <down> <down> <down>
<down> <end> <up> <up> <up> <C-right> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-left> <C-left> <C-left>
<C-right> <C-backspace> y s u b <backspace> <backspace>
<backspace> <backspace> u s i n g <C-left> a l s o
SPC <up> <home> M-q <down> <down> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right>
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right>
<C-right> <up> <up> <up> <down> <down> <down> <down>
<down> <down> <down> C-c C-c y <right> <right> <right>
<right> <right> <left> <right> <right> <return> M-x
<up> <return>

Recent messages:
byte-code: Beginning of buffer [2 times]
Auto-saving...done
Quit [2 times]
Auto-saving...done
Send this bug report to the Emacs maintainers? (y or n)  y
Saving file /home/jarek/.emacs.d/init.el...
Wrote /home/jarek/.emacs.d/init.el [2 times]
Sending...
Sending via mail...
Sending...done

Load-path shadows:
/home/jarek/.emacs.d/elpa/org-20130128/ob-matlab hides
/usr/share/emacs/24.2/lisp/org/ob-matlab
/home/jarek/.emacs.d/elpa/org-20130128/org-src hides
/usr/share/emacs/24.2/lisp/org/org-src
/home/jarek/.emacs.d/elpa/org-20130128/org hides
/usr/share/emacs/24.2/lisp/org/org
/home/jarek/.emacs.d/elpa/org-20130128/org-docview hides
/usr/share/emacs/24.2/lisp/org/org-docview
/home/jarek/.emacs.d/elpa/org-20130128/org-timer hides
/usr/share/emacs/24.2/lisp/org/org-timer
/home/jarek/.emacs.d/elpa/org-20130128/org-feed hides
/usr/share/emacs/24.2/lisp/org/org-feed
/home/jarek/.emacs.d/elpa/org-20130128/ob-sqlite hides
/usr/share/emacs/24.2/lisp/org/ob-sqlite
/home/jarek/.emacs.d/elpa/org-20130128/org-table hides
/usr/share/emacs/24.2/lisp/org/org-table
/home/jarek/.emacs.d/elpa/org-20130128/org-info hides
/usr/share/emacs/24.2/lisp/org/org-info
/home/jarek/.emacs.d/elpa/org-20130128/org-wl hides
/usr/share/emacs/24.2/lisp/org/org-wl
/home/jarek/.emacs.d/elpa/org-20130128/org-mobile hides
/usr/share/emacs/24.2/lisp/org/org-mobile
/home/jarek/.emacs.d/elpa/org-20130128/ob-asymptote hides
/usr/share/emacs/24.2/lisp/org/ob-asymptote
/home/jarek/.emacs.d/elpa/org-20130128/ob-lisp hides
/usr/share/emacs/24.2/lisp/org/ob-lisp
/home/jarek/.emacs.d/elpa/org-20130128/org-w3m hides
/usr/share/emacs/24.2/lisp/org/org-w3m
/home/jarek/.emacs.d/elpa/org-20130128/org-gnus hides
/usr/share/emacs/24.2/lisp/org/org-gnus
/home/jarek/.emacs.d/elpa/org-20130128/org-macs hides
/usr/share/emacs/24.2/lisp/org/org-macs
/home/jarek/.emacs.d/elpa/org-20130128/org-exp hides
/usr/share/emacs/24.2/lisp/org/org-exp
/home/jarek/.emacs.d/elpa/org-20130128/org-ctags hides
/usr/share/emacs/24.2/lisp/org/org-ctags
/home/jarek/.emacs.d/elpa/org-20130128/ob-gnuplot hides
/usr/share/emacs/24.2/lisp/org/ob-gnuplot
/home/jarek/.emacs.d/elpa/org-20130128/org-list hides
/usr/share/emacs/24.2/lisp/org/org-list
/home/jarek/.emacs.d/elpa/org-20130128/ob-screen hides
/usr/share/emacs/24.2/lisp/org/ob-screen
/home/jarek/.emacs.d/elpa/org-20130128/org-icalendar hides
/usr/share/emacs/24.2/lisp/org/org-icalendar
/home/jarek/.emacs.d/elpa/org-20130128/ob-keys hides
/usr/share/emacs/24.2/lisp/org/ob-keys
/home/jarek/.emacs.d/elpa/org-20130128/ob-sass hides
/usr/share/emacs/24.2/lisp/org/ob-sass
/home/jarek/.emacs.d/elpa/org-20130128/ob-ocaml hides
/usr/share/emacs/24.2/lisp/org/ob-ocaml
/home/jarek/.emacs.d/elpa/org-20130128/ob-exp hides
/usr/share/emacs/24.2/lisp/org/ob-exp
/home/jarek/.emacs.d/elpa/org-20130128/org-special-blocks hides
/usr/share/emacs/24.2/lisp/org/org-special-blocks
/home/jarek/.emacs.d/elpa/org-20130128/org-irc hides
/usr/share/emacs/24.2/lisp/org/org-irc
/home/jarek/.emacs.d/elpa/org-20130128/org-footnote hides
/usr/share/emacs/24.2/lisp/org/org-footnote
/home/jarek/.emacs.d/elpa/org-20130128/org-publish hides
/usr/share/emacs/24.2/lisp/org/org-publish
/home/jarek/.emacs.d/elpa/org-20130128/org-mac-message hides
/usr/share/emacs/24.2/lisp/org/org-mac-message
/home/jarek/.emacs.d/elpa/org-20130128/org-vm hides
/usr/share/emacs/24.2/lisp/org/org-vm
/home/jarek/.emacs.d/elpa/org-20130128/ob-fortran hides
/usr/share/emacs/24.2/lisp/org/ob-fortran
/home/jarek/.emacs.d/elpa/org-20130128/org-freemind hides
/usr/share/emacs/24.2/lisp/org/org-freemind
/home/jarek/.emacs.d/elpa/org-20130128/org-mhe hides
/usr/share/emacs/24.2/lisp/org/org-mhe
/home/jarek/.emacs.d/elpa/org-20130128/org-attach hides
/usr/share/emacs/24.2/lisp/org/org-attach
/home/jarek/.emacs.d/elpa/org-20130128/org-xoxo hides
/usr/share/emacs/24.2/lisp/org/org-xoxo
/home/jarek/.emacs.d/elpa/org-20130128/ob-ledger hides
/usr/share/emacs/24.2/lisp/org/ob-ledger
/home/jarek/.emacs.d/elpa/org-20130128/org-latex hides
/usr/share/emacs/24.2/lisp/org/org-latex
/home/jarek/.emacs.d/elpa/org-20130128/ob-ditaa hides
/usr/share/emacs/24.2/lisp/org/ob-ditaa
/home/jarek/.emacs.d/elpa/org-20130128/org-html hides
/usr/share/emacs/24.2/lisp/org/org-html
/home/jarek/.emacs.d/elpa/org-20130128/org-exp-blocks hides
/usr/share/emacs/24.2/lisp/org/org-exp-blocks
/home/jarek/.emacs.d/elpa/org-20130128/ob-python hides
/usr/share/emacs/24.2/lisp/org/ob-python
/home/jarek/.emacs.d/elpa/org-20130128/ob-awk hides
/usr/share/emacs/24.2/lisp/org/ob-awk
/home/jarek/.emacs.d/elpa/org-20130128/ob hides
/usr/share/emacs/24.2/lisp/org/ob
/home/jarek/.emacs.d/elpa/org-20130128/ob-scheme hides
/usr/share/emacs/24.2/lisp/org/ob-scheme
/home/jarek/.emacs.d/elpa/org-20130128/ob-maxima hides
/usr/share/emacs/24.2/lisp/org/ob-maxima
/home/jarek/.emacs.d/elpa/org-20130128/ob-tangle hides
/usr/share/emacs/24.2/lisp/org/ob-tangle
/home/jarek/.emacs.d/elpa/org-20130128/ob-eval hides
/usr/share/emacs/24.2/lisp/org/ob-eval
/home/jarek/.emacs.d/elpa/org-20130128/org-bibtex hides
/usr/share/emacs/24.2/lisp/org/org-bibtex
/home/jarek/.emacs.d/elpa/org-20130128/org-lparse hides
/usr/share/emacs/24.2/lisp/org/org-lparse
/home/jarek/.emacs.d/elpa/org-20130128/ob-js hides
/usr/share/emacs/24.2/lisp/org/ob-js
/home/jarek/.emacs.d/elpa/org-20130128/ob-css hides
/usr/share/emacs/24.2/lisp/org/ob-css
/home/jarek/.emacs.d/elpa/org-20130128/org-inlinetask hides
/usr/share/emacs/24.2/lisp/org/org-inlinetask
/home/jarek/.emacs.d/elpa/org-20130128/org-remember hides
/usr/share/emacs/24.2/lisp/org/org-remember
/home/jarek/.emacs.d/elpa/org-20130128/org-indent hides
/usr/share/emacs/24.2/lisp/org/org-indent
/home/jarek/.emacs.d/elpa/org-20130128/org-taskjuggler hides
/usr/share/emacs/24.2/lisp/org/org-taskjuggler
/home/jarek/.emacs.d/elpa/org-20130128/org-agenda hides
/usr/share/emacs/24.2/lisp/org/org-agenda
/home/jarek/.emacs.d/elpa/org-20130128/ob-table hides
/usr/share/emacs/24.2/lisp/org/ob-table
/home/jarek/.emacs.d/elpa/org-20130128/ob-comint hides
/usr/share/emacs/24.2/lisp/org/ob-comint
/home/jarek/.emacs.d/elpa/org-20130128/org-faces hides
/usr/share/emacs/24.2/lisp/org/org-faces
/home/jarek/.emacs.d/elpa/org-20130128/org-entities hides
/usr/share/emacs/24.2/lisp/org/org-entities
/home/jarek/.emacs.d/elpa/org-20130128/org-eshell hides
/usr/share/emacs/24.2/lisp/org/org-eshell
/home/jarek/.emacs.d/elpa/org-20130128/org-install hides
/usr/share/emacs/24.2/lisp/org/org-install
/home/jarek/.emacs.d/elpa/org-20130128/ob-lob hides
/usr/share/emacs/24.2/lisp/org/ob-lob
/home/jarek/.emacs.d/elpa/org-20130128/ob-ref hides
/usr/share/emacs/24.2/lisp/org/ob-ref
/home/jarek/.emacs.d/elpa/org-20130128/org-clock hides
/usr/share/emacs/24.2/lisp/org/org-clock
/home/jarek/.emacs.d/elpa/org-20130128/ob-perl hides
/usr/share/emacs/24.2/lisp/org/ob-perl
/home/jarek/.emacs.d/elpa/org-20130128/org-pcomplete hides
/usr/share/emacs/24.2/lisp/org/org-pcomplete
/home/jarek/.emacs.d/elpa/org-20130128/org-datetree hides
/usr/share/emacs/24.2/lisp/org/org-datetree
/home/jarek/.emacs.d/elpa/org-20130128/ob-sh hides
/usr/share/emacs/24.2/lisp/org/ob-sh
/home/jarek/.emacs.d/elpa/org-20130128/org-habit hides
/usr/share/emacs/24.2/lisp/org/org-habit
/home/jarek/.emacs.d/elpa/org-20130128/ob-picolisp hides
/usr/share/emacs/24.2/lisp/org/ob-picolisp
/home/jarek/.emacs.d/elpa/org-20130128/org-mouse hides
/usr/share/emacs/24.2/lisp/org/org-mouse
/home/jarek/.emacs.d/elpa/org-20130128/org-archive hides
/usr/share/emacs/24.2/lisp/org/org-archive
/home/jarek/.emacs.d/elpa/org-20130128/org-crypt hides
/usr/share/emacs/24.2/lisp/org/org-crypt
/home/jarek/.emacs.d/elpa/org-20130128/org-id hides
/usr/share/emacs/24.2/lisp/org/org-id
/home/jarek/.emacs.d/elpa/org-20130128/org-capture hides
/usr/share/emacs/24.2/lisp/org/org-capture
/home/jarek/.emacs.d/elpa/org-20130128/org-docbook hides
/usr/share/emacs/24.2/lisp/org/org-docbook
/home/jarek/.emacs.d/elpa/org-20130128/org-odt hides
/usr/share/emacs/24.2/lisp/org/org-odt
/home/jarek/.emacs.d/elpa/org-20130128/ob-R hides
/usr/share/emacs/24.2/lisp/org/ob-R
/home/jarek/.emacs.d/elpa/org-20130128/ob-sql hides
/usr/share/emacs/24.2/lisp/org/ob-sql
/home/jarek/.emacs.d/elpa/org-20130128/ob-mscgen hides
/usr/share/emacs/24.2/lisp/org/ob-mscgen
/home/jarek/.emacs.d/elpa/org-20130128/ob-shen hides
/usr/share/emacs/24.2/lisp/org/ob-shen
/home/jarek/.emacs.d/elpa/org-20130128/ob-calc hides
/usr/share/emacs/24.2/lisp/org/ob-calc
/home/jarek/.emacs.d/elpa/org-20130128/org-bbdb hides
/usr/share/emacs/24.2/lisp/org/org-bbdb
/home/jarek/.emacs.d/elpa/org-20130128/org-compat hides
/usr/share/emacs/24.2/lisp/org/org-compat
/home/jarek/.emacs.d/elpa/org-20130128/ob-org hides
/usr/share/emacs/24.2/lisp/org/ob-org
/home/jarek/.emacs.d/elpa/org-20130128/ob-octave hides
/usr/share/emacs/24.2/lisp/org/ob-octave
/home/jarek/.emacs.d/elpa/org-20130128/org-beamer hides
/usr/share/emacs/24.2/lisp/org/org-beamer
/home/jarek/.emacs.d/elpa/org-20130128/org-jsinfo hides
/usr/share/emacs/24.2/lisp/org/org-jsinfo
/home/jarek/.emacs.d/elpa/org-20130128/ob-java hides
/usr/share/emacs/24.2/lisp/org/ob-java
/home/jarek/.emacs.d/elpa/org-20130128/org-mks hides
/usr/share/emacs/24.2/lisp/org/org-mks
/home/jarek/.emacs.d/elpa/org-20130128/ob-plantuml hides
/usr/share/emacs/24.2/lisp/org/ob-plantuml
/home/jarek/.emacs.d/elpa/org-20130128/ob-emacs-lisp hides
/usr/share/emacs/24.2/lisp/org/ob-emacs-lisp
/home/jarek/.emacs.d/elpa/org-20130128/org-rmail hides
/usr/share/emacs/24.2/lisp/org/org-rmail
/home/jarek/.emacs.d/elpa/org-20130128/org-plot hides
/usr/share/emacs/24.2/lisp/org/org-plot
/home/jarek/.emacs.d/elpa/org-20130128/ob-lilypond hides
/usr/share/emacs/24.2/lisp/org/ob-lilypond
/home/jarek/.emacs.d/elpa/org-20130128/ob-latex hides
/usr/share/emacs/24.2/lisp/org/ob-latex
/home/jarek/.emacs.d/elpa/org-20130128/ob-ruby hides
/usr/share/emacs/24.2/lisp/org/ob-ruby
/home/jarek/.emacs.d/elpa/org-20130128/org-colview hides
/usr/share/emacs/24.2/lisp/org/org-colview
/home/jarek/.emacs.d/elpa/org-20130128/ob-dot hides
/usr/share/emacs/24.2/lisp/org/ob-dot
/home/jarek/.emacs.d/elpa/org-20130128/org-ascii hides
/usr/share/emacs/24.2/lisp/org/org-ascii
/home/jarek/.emacs.d/elpa/org-20130128/ob-clojure hides
/usr/share/emacs/24.2/lisp/org/ob-clojure
/home/jarek/.emacs.d/elpa/org-20130128/org-protocol hides
/usr/share/emacs/24.2/lisp/org/org-protocol
/home/jarek/.emacs.d/elpa/org-20130128/ob-haskell hides
/usr/share/emacs/24.2/lisp/org/ob-haskell
/home/jarek/.emacs.d/elpa/org-20130128/org-mew hides
/usr/share/emacs/24.2/lisp/org/org-mew
/home/jarek/.emacs.d/elpa/org-20130128/ob-C hides
/usr/share/emacs/24.2/lisp/org/ob-C
/home/jarek/.emacs.d/elpa/magit-20130114.1006/.dir-locals hides
/usr/share/emacs/24.2/lisp/gnus/.dir-locals

Features:
(mailalias mailclient browse-url conf-mode newcomment help-mode view
shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils init-keys init-functions init-dired dired-x dired
cua-base windmove subword electric hl-line paren mic-paren
ido-ubiquitous ido cus-edit cus-start cus-load wid-edit rhtml-mode
rhtml-navigation rhtml-sgml-hacks rhtml-ruby-hook sgml-mode rhtml-erb
rhtml-fonts pager proel helm magit-simple-keys magit-bisect
magit-key-mode magit diff-mode log-edit easy-mmode pcvs-util add-log
ruby-end ruby-mode move-text ipython python-mode derived skeleton advice
help-fns advice-preload edmacro kmacro thingatpt imenu flymake rx
cc-cmds cc-engine cc-vars cc-defs compile executable shell pcomplete
comint regexp-opt ansi-color ring cl helm-autoloads
ido-ubiquitous-autoloads magit-autoloads mic-paren-autoloads
move-text-autoloads org-autoloads info easymenu pager-autoloads
rainbow-mode-autoloads ruby-end-autoloads smooth-scroll-autoloads
package tabulated-list time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image fringe
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)