Discussion:
bug#43128: 27.1; DPI change not detected after switching to Emacs 27.1
(too old to reply)
Vincent Bernat
2020-08-31 07:31:04 UTC
Permalink
After upgrading from Emacs 26.3 (GTK backend) to Emacs 27.1 (GTK
backend), DPI changes are not detected anymore. I am using a laptop with
a HiDPI screen (144 dpi) and when switching to a regular external DPI
monitor (96 dpi), nothing is scaled down.

The change is signalled through XSETTINGS (using xsettingsd daemon in my
case). I have tried to look at the source code to check if there was a
way to detect if the change was detected but not applied, without
success. Also, a new frame on the same display still has its fonts
scaled incorrectly.

Thanks.



In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0)
of 2020-08-24, modified by Debian built on x86-grnet-01
Windowing system distributor 'The X.Org Foundation', version 11.0.12008000
System Description: Debian GNU/Linux bullseye/sid

Recent messages:
Back to top level
uncompressing frame.el.gz...done
Note: file is write protected
uncompressing frame.el.gz...done
Searched 0/1 files
Searched 1/1 files
Quit [2 times]
nil
Beginning of buffer
Mark saved where search started [3 times]

Configured using:
'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
'CFLAGS=-g -O2 -fdebug-prefix-map=/build/emacs-ad1UB1/emacs-27.1+1=.
-fstack-protector-strong -Wformat -Werror=format-security -Wall'
'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD
JSON PDUMPER LCMS2 GMP

Important settings:
value of $LC_MESSAGES: en_US.utf8
value of $LANG: fr_FR.utf8
locale-coding-system: utf-8-unix

Major mode: C/*l

Minor modes in effect:
projectile-mode: t
bug-reference-prog-mode: t
global-magit-file-mode: t
magit-auto-revert-mode: t
dtrt-indent-global-mode: t
dtrt-indent-mode: t
whitespace-mode: t
highlight-parentheses-mode: t
eros-mode: t
global-company-mode: t
company-mode: t
global-flycheck-mode: t
flycheck-mode: t
global-git-commit-mode: t
shell-dirtrack-mode: t
async-bytecomp-package-mode: t
global-auto-revert-mode: t
save-place-mode: t
counsel-mode: t
ivy-mode: t
which-key-mode: t
auto-compile-on-load-mode: t
global-page-break-lines-mode: t
global-hl-line-mode: t
show-paren-mode: t
override-global-mode: t
cl-old-struct-compat-mode: t
tooltip-mode: t
global-eldoc-mode: t
electric-indent-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
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
abbrev-mode: t

Load-path shadows:
/home/bernat/.emacs.d/site-lisp/cmake-mode-3.17.0pre3/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/preseed
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-bug
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-sources
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-bts-control hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-bts-control
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-pkg
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-control-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-changelog-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-changelog-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/readme-debian hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/readme-debian
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-copyright hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-copyright
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-id hides /usr/share/emacs/27.1/lisp/org/org-id
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-inlinetask hides /usr/share/emacs/27.1/lisp/org/org-inlinetask
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-w3m hides /usr/share/emacs/27.1/lisp/org/ol-w3m
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-ctags hides /usr/share/emacs/27.1/lisp/org/org-ctags
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-forth hides /usr/share/emacs/27.1/lisp/org/ob-forth
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-mhe hides /usr/share/emacs/27.1/lisp/org/ol-mhe
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-eww hides /usr/share/emacs/27.1/lisp/org/ol-eww
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-makefile hides /usr/share/emacs/27.1/lisp/org/ob-makefile
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-datetree hides /usr/share/emacs/27.1/lisp/org/org-datetree
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-calc hides /usr/share/emacs/27.1/lisp/org/ob-calc
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-python hides /usr/share/emacs/27.1/lisp/org/ob-python
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-agenda hides /usr/share/emacs/27.1/lisp/org/org-agenda
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-footnote hides /usr/share/emacs/27.1/lisp/org/org-footnote
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-processing hides /usr/share/emacs/27.1/lisp/org/ob-processing
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-emacs-lisp hides /usr/share/emacs/27.1/lisp/org/ob-emacs-lisp
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-core hides /usr/share/emacs/27.1/lisp/org/ob-core
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-texinfo hides /usr/share/emacs/27.1/lisp/org/ox-texinfo
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-R hides /usr/share/emacs/27.1/lisp/org/ob-R
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-java hides /usr/share/emacs/27.1/lisp/org/ob-java
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-crypt hides /usr/share/emacs/27.1/lisp/org/org-crypt
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ebnf hides /usr/share/emacs/27.1/lisp/org/ob-ebnf
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-tempo hides /usr/share/emacs/27.1/lisp/org/org-tempo
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ditaa hides /usr/share/emacs/27.1/lisp/org/ob-ditaa
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-coq hides /usr/share/emacs/27.1/lisp/org/ob-coq
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-beamer hides /usr/share/emacs/27.1/lisp/org/ox-beamer
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob hides /usr/share/emacs/27.1/lisp/org/ob
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-info hides /usr/share/emacs/27.1/lisp/org/ol-info
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-mscgen hides /usr/share/emacs/27.1/lisp/org/ob-mscgen
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-md hides /usr/share/emacs/27.1/lisp/org/ox-md
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-faces hides /usr/share/emacs/27.1/lisp/org/org-faces
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-bibtex hides /usr/share/emacs/27.1/lisp/org/ol-bibtex
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-io hides /usr/share/emacs/27.1/lisp/org/ob-io
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-haskell hides /usr/share/emacs/27.1/lisp/org/ob-haskell
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-eval hides /usr/share/emacs/27.1/lisp/org/ob-eval
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-compat hides /usr/share/emacs/27.1/lisp/org/org-compat
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-gnuplot hides /usr/share/emacs/27.1/lisp/org/ob-gnuplot
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-loaddefs hides /usr/share/emacs/27.1/lisp/org/org-loaddefs
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-css hides /usr/share/emacs/27.1/lisp/org/ob-css
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-duration hides /usr/share/emacs/27.1/lisp/org/org-duration
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org hides /usr/share/emacs/27.1/lisp/org/org
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-lisp hides /usr/share/emacs/27.1/lisp/org/ob-lisp
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-js hides /usr/share/emacs/27.1/lisp/org/ob-js
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-element hides /usr/share/emacs/27.1/lisp/org/org-element
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-clock hides /usr/share/emacs/27.1/lisp/org/org-clock
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-icalendar hides /usr/share/emacs/27.1/lisp/org/ox-icalendar
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-habit hides /usr/share/emacs/27.1/lisp/org/org-habit
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-gnus hides /usr/share/emacs/27.1/lisp/org/ol-gnus
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-bbdb hides /usr/share/emacs/27.1/lisp/org/ol-bbdb
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-picolisp hides /usr/share/emacs/27.1/lisp/org/ob-picolisp
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-latex hides /usr/share/emacs/27.1/lisp/org/ox-latex
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-sqlite hides /usr/share/emacs/27.1/lisp/org/ob-sqlite
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-macro hides /usr/share/emacs/27.1/lisp/org/org-macro
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-feed hides /usr/share/emacs/27.1/lisp/org/org-feed
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-src hides /usr/share/emacs/27.1/lisp/org/org-src
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-mobile hides /usr/share/emacs/27.1/lisp/org/org-mobile
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-abc hides /usr/share/emacs/27.1/lisp/org/ob-abc
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ruby hides /usr/share/emacs/27.1/lisp/org/ob-ruby
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-org hides /usr/share/emacs/27.1/lisp/org/ob-org
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-protocol hides /usr/share/emacs/27.1/lisp/org/org-protocol
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-dot hides /usr/share/emacs/27.1/lisp/org/ob-dot
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ocaml hides /usr/share/emacs/27.1/lisp/org/ob-ocaml
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-fortran hides /usr/share/emacs/27.1/lisp/org/ob-fortran
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-timer hides /usr/share/emacs/27.1/lisp/org/org-timer
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-scheme hides /usr/share/emacs/27.1/lisp/org/ob-scheme
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-sql hides /usr/share/emacs/27.1/lisp/org/ob-sql
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-list hides /usr/share/emacs/27.1/lisp/org/org-list
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-goto hides /usr/share/emacs/27.1/lisp/org/org-goto
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-capture hides /usr/share/emacs/27.1/lisp/org/org-capture
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-plot hides /usr/share/emacs/27.1/lisp/org/org-plot
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-asymptote hides /usr/share/emacs/27.1/lisp/org/ob-asymptote
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-lint hides /usr/share/emacs/27.1/lisp/org/org-lint
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ledger hides /usr/share/emacs/27.1/lisp/org/ob-ledger
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-table hides /usr/share/emacs/27.1/lisp/org/ob-table
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-docview hides /usr/share/emacs/27.1/lisp/org/ol-docview
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-mouse hides /usr/share/emacs/27.1/lisp/org/org-mouse
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-screen hides /usr/share/emacs/27.1/lisp/org/ob-screen
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-macs hides /usr/share/emacs/27.1/lisp/org/org-macs
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-html hides /usr/share/emacs/27.1/lisp/org/ox-html
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-odt hides /usr/share/emacs/27.1/lisp/org/ox-odt
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-pcomplete hides /usr/share/emacs/27.1/lisp/org/org-pcomplete
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-comint hides /usr/share/emacs/27.1/lisp/org/ob-comint
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-sass hides /usr/share/emacs/27.1/lisp/org/ob-sass
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-rmail hides /usr/share/emacs/27.1/lisp/org/ol-rmail
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-latex hides /usr/share/emacs/27.1/lisp/org/ob-latex
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-indent hides /usr/share/emacs/27.1/lisp/org/org-indent
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-colview hides /usr/share/emacs/27.1/lisp/org/org-colview
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-attach hides /usr/share/emacs/27.1/lisp/org/org-attach
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-sed hides /usr/share/emacs/27.1/lisp/org/ob-sed
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-ascii hides /usr/share/emacs/27.1/lisp/org/ox-ascii
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-shell hides /usr/share/emacs/27.1/lisp/org/ob-shell
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol hides /usr/share/emacs/27.1/lisp/org/ol
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-octave hides /usr/share/emacs/27.1/lisp/org/ob-octave
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-attach-git hides /usr/share/emacs/27.1/lisp/org/org-attach-git
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-vala hides /usr/share/emacs/27.1/lisp/org/ob-vala
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-install hides /usr/share/emacs/27.1/lisp/org/org-install
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-exp hides /usr/share/emacs/27.1/lisp/org/ob-exp
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-publish hides /usr/share/emacs/27.1/lisp/org/ox-publish
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-C hides /usr/share/emacs/27.1/lisp/org/ob-C
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-tangle hides /usr/share/emacs/27.1/lisp/org/ob-tangle
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-version hides /usr/share/emacs/27.1/lisp/org/org-version
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-plantuml hides /usr/share/emacs/27.1/lisp/org/ob-plantuml
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-archive hides /usr/share/emacs/27.1/lisp/org/org-archive
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-lilypond hides /usr/share/emacs/27.1/lisp/org/ob-lilypond
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-awk hides /usr/share/emacs/27.1/lisp/org/ob-awk
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-groovy hides /usr/share/emacs/27.1/lisp/org/ob-groovy
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-entities hides /usr/share/emacs/27.1/lisp/org/org-entities
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-man hides /usr/share/emacs/27.1/lisp/org/ox-man
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-irc hides /usr/share/emacs/27.1/lisp/org/ol-irc
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ol-eshell hides /usr/share/emacs/27.1/lisp/org/ol-eshell
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-eshell hides /usr/share/emacs/27.1/lisp/org/ob-eshell
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-num hides /usr/share/emacs/27.1/lisp/org/org-num
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-perl hides /usr/share/emacs/27.1/lisp/org/ob-perl
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-stan hides /usr/share/emacs/27.1/lisp/org/ob-stan
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-lob hides /usr/share/emacs/27.1/lisp/org/ob-lob
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox-org hides /usr/share/emacs/27.1/lisp/org/ox-org
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-keys hides /usr/share/emacs/27.1/lisp/org/org-keys
/home/bernat/.emacs.d/site-lisp/org-9.3.6/org-table hides /usr/share/emacs/27.1/lisp/org/org-table
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-lua hides /usr/share/emacs/27.1/lisp/org/ob-lua
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-hledger hides /usr/share/emacs/27.1/lisp/org/ob-hledger
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-clojure hides /usr/share/emacs/27.1/lisp/org/ob-clojure
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-ref hides /usr/share/emacs/27.1/lisp/org/ob-ref
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ox hides /usr/share/emacs/27.1/lisp/org/ox
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-J hides /usr/share/emacs/27.1/lisp/org/ob-J
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-matlab hides /usr/share/emacs/27.1/lisp/org/ob-matlab
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-maxima hides /usr/share/emacs/27.1/lisp/org/ob-maxima
/home/bernat/.emacs.d/site-lisp/org-9.3.6/ob-shen hides /usr/share/emacs/27.1/lisp/org/ob-shen

Features:
(shadow emacsbug hippie-exp misearch multi-isearch lua-mode autoload
cl-print debug rect term/screen term/xterm xterm markdown-mode
edit-indirect cursor-sensor js2-mode warnings js cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
jinja2-mode sgml-mode yaml-mode shr-color rst dumb-jump popup projectile
grep ibuf-ext ibuffer ibuffer-loaddefs python tramp-sh tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat ls-lisp
pp bbdb-message sendmail git-rebase nix-mode ffap smie nix-repl
nix-shell nix-store nix-instantiate nix-shebang nix-format nix gnus-kill
mule-util flow-fill mm-archive url-http url-gw url-auth epa-file dbus
sort gnus-cite qp gnus-async gnus-bcklg emojify apropos tar-mode
arc-mode archive-mode ht gnus-ml gnus-agent gnus-srvr gnus-score
score-mode nnvirtual nndraft nnmh utf-7 gnus-cache bbdb-gnus
network-stream nntp vbe-gnus bbdb-mua vbe-gnus-identities
gnus-identities vbe-gnus-looks gnus-topic vbe-gnus-general gnus-gravatar
mail-extr gravatar url-cache spam spam-stat bbdb-com bbdb bbdb-site
timezone gnus-uu yenc vbe-mbsync nnir gnus-icalendar org-capture
vbe-orgmode ox-reveal ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree
htmlize cl ob-async ob-shell ob-python org-tempo tempo org-clock org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
org-compat org-macs org-loaddefs icalendar diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs gnus-msg gnus-art mm-uu mml2015 mm-view
mml-smime smime dig gnus-sum url url-proxy url-privacy url-expand
url-methods url-history mailcap shr url-cookie url-domsuf url-util svg
xml dom gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int
gnus-range gnus-win gnus nnheader helpful trace edebug backtrace
info-look elisp-refs loop bug-reference magit-extras magit-submodule
magit-obsolete magit-popup magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff magit-core magit-autorevert magit-margin
magit-transient magit-process magit-mode thingatpt vc-git diff-mode
dtrt-indent disp-table paredit whitespace highlight-parentheses
vbe-server vbe-apps vbe-programming eros company-oddmuse
company-keywords company-etags etags fileloop generator company-gtags
company-dabbrev-code company-dabbrev company-files company-capf
company-cmake company-xcode company-clang company-semantic company-eclim
company-template company-bbdb company flycheck-package package-lint
let-alist imenu finder flycheck find-func git-commit with-editor shell
pcomplete transient async-bytecomp async server magit-git magit-section
magit-utils crm log-edit message format-spec rfc822 mml mml-sec epa epg
epg-config gnus-util rmail rmail-loaddefs text-property-search time-date
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log
vbe-ergonomics autorevert filenotify saveplace counsel xdg xref project
dired dired-loaddefs compile comint ansi-color swiper smex ido ivy
delsel ring jka-compr colir ivy-overlay which-key auto-compile pcase
packed vbe-looks page-break-lines spaceline-config spaceline-segments
spaceline powerline advice powerline-separators color powerline-themes
naquadah-theme hl-line paren vbe-common exec-path-from-shell
dash-functional f dash s vbe-package quelpa-use-package quelpa mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr lisp-mnt help-fns radix-tree cus-edit cus-start
cus-load wid-edit diminish cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core derived
finder-inf tex-site edmacro kmacro rx dpkg-dev-el info debian-el vbe-tls
nsm rmc tls gnutls puny package easymenu browse-url url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 1554451 810098)
(symbols 48 73742 4)
(strings 32 391691 79664)
(string-bytes 1 18314672)
(vectors 16 150772)
(vector-slots 8 4494952 144006)
(floats 8 818 1868)
(intervals 56 52958 19479)
(buffers 1000 149))
Vincent Bernat
2020-09-02 07:28:38 UTC
Permalink
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)
Vincent Bernat
2020-09-02 07:51:35 UTC
Permalink
From configure.ac, I see that I go into the Cairo branch which disables
#+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?
Disabling Cairo fixes the problem for me.
--
Program defensively.
- The Elements of Programming Style (Kernighan & Plauger)
YAMAMOTO Mitsuharu
2020-09-02 07:58:59 UTC
Permalink
On Wed, 02 Sep 2020 16:28:38 +0900,
Post by Vincent Bernat
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.
The function apply_xft_settings wasn't a no-op when I originally
removed the dependency on Xft if USE_CAIRO. But it was changed to a
no-op as a workaround for Bug#36284.

As I mentioned in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36284#8,
a proper fix would be to implement replacements for
XftDefaultSubstitute and XftDefaultSet.

YAMAMOTO Mitsuharu
***@math.s.chiba-u.ac.jp
Vincent Bernat
2020-09-02 08:20:18 UTC
Permalink
Post by YAMAMOTO Mitsuharu
Post by Vincent Bernat
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.
The function apply_xft_settings wasn't a no-op when I originally
removed the dependency on Xft if USE_CAIRO. But it was changed to a
no-op as a workaround for Bug#36284.
It may be a bit late now that 27.1 is released, but #36284 has an easy
workaround of moving the default face outside init, while not being able
to adapt to the current desktop DPI settings has no obvious workaround
except restarting Emacs. I'll just compile Emacs without Cairo support
for now.
--
Let me take you a button-hole lower.
-- William Shakespeare, "Love's Labour's Lost"
Eli Zaretskii
2020-09-02 14:16:25 UTC
Permalink
Date: Wed, 02 Sep 2020 10:20:18 +0200
It may be a bit late now that 27.1 is released, but #36284 has an easy
workaround of moving the default face outside init
Can you elaborate on that workaround? I don't think I understand what
you mean by "moving the default face outside init". Did you mean some
code change? if so, could you tell more about the change you had in
mind?
Eli Zaretskii
2020-09-02 14:18:40 UTC
Permalink
Date: Wed, 02 Sep 2020 16:58:59 +0900
Post by Vincent Bernat
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.
The function apply_xft_settings wasn't a no-op when I originally
removed the dependency on Xft if USE_CAIRO. But it was changed to a
no-op as a workaround for Bug#36284.
Bug#36284 seems to be about an issue unrelated to DPI scaling. is
there perhaps a way to keep parts of it that will allow to adapt to
the DPI change?
As I mentioned in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=36284#8,
a proper fix would be to implement replacements for
XftDefaultSubstitute and XftDefaultSet.
How complicate will such a change be? Will it be simple and safe
enough to allow installing such a change on the emacs-27 branch?

Thanks.
Vincent Bernat
2020-09-02 18:10:51 UTC
Permalink
Post by Eli Zaretskii
Post by Vincent Bernat
It may be a bit late now that 27.1 is released, but #36284 has an easy
workaround of moving the default face outside init
Can you elaborate on that workaround? I don't think I understand what
you mean by "moving the default face outside init". Did you mean some
code change? if so, could you tell more about the change you had in
mind?
Oh, sorry, I thought the problem was when setting font in the early
init. In this case, the workaround would have been to move it to the
regular init. So, nevermind.
--
All things that are, are with more spirit chased than enjoyed.
-- Shakespeare, "Merchant of Venice"
Loading...