Hey!
After investigating a bit, I see that `read_settings()' is correctly
called and the DPI retrieved is correct. However, `apply_xft_settings()'
seems to be a noop for me. I am using the Debian package for
experimental. In the build logs, for the GTK build:
#v+
cd debian/build-gtk && CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall" CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,relro" REL_ALLOC=no /<<PKGBUILDDIR>>/debian/build-src/configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-cairo --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
[...]
Does Emacs use -lxft? no
#v-
The lucid build has XFT:
#v+
cd debian/build-lucid && CFLAGS="-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wall" CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2" LDFLAGS="-Wl,-z,relro" REL_ALLOC=no /<<PKGBUILDDIR>>/debian/build-src/configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-x=yes --with-x-toolkit=lucid --with-toolkit-scroll-bars --without-gsettings
#v-
Looking at the differences in the build, I see the GTK build tests until
FreeType then it doesn't look further for Xft:
#v+
checking for cairo >= 1.8.0... yes
checking for freetype2... yes
checking for fontconfig >= 2.2.0... yes
#v-
>From
configure.ac, I see that I go into the Cairo branch which disables
Xft:
#+begin_src sh
if test $HAVE_CAIRO = yes; then
dnl Strict linkers fail with
dnl ftfont.o: undefined reference to symbol 'FT_New_Face'
dnl if -lfreetype is not specified.
dnl The following is needed to set FREETYPE_LIBS.
EMACS_CHECK_MODULES([FREETYPE], [freetype2])
test "$HAVE_FREETYPE" = "no" && AC_MSG_ERROR(cairo requires libfreetype)
EMACS_CHECK_MODULES([FONTCONFIG], [fontconfig >= 2.2.0])
test "$HAVE_FONTCONFIG" = "no" && AC_MSG_ERROR(cairo requires libfontconfig)
dnl For the "Does Emacs use" message at the end.
HAVE_XFT=no
#+end_src
So, no XFT seems to mean, no DPI change is possible. Is that expected?
--
Make sure input cannot violate the limits of the program.
- The Elements of Programming Style (Kernighan & Plauger)