Browse Source

Disable automatic scaling in GNOME/GTK applications

GNOME automatically set scaling factor to 2 when HiDPI is detected.
Unfortunately it does it also on not really HiDPI displays, making the
whole UI unusably large. There is no middle ground - scaling factor must
be integer, so 1.5 is not supported. Lets opt on a conservative side and
fallback to scaling factor 1.

Solution by @alyssais, thanks!
Fixes QubesOS/qubes-issues#3108
Marek Marczykowski-Górecki 6 years ago
parent
commit
7ecb74ae3b

+ 3 - 0
Makefile

@@ -288,6 +288,9 @@ install-common: install-doc
 	install -d $(DESTDIR)/usr/share/nautilus-python/extensions
 	install -m 0644 qubes-rpc/*_nautilus.py $(DESTDIR)/usr/share/nautilus-python/extensions
 
+	install -D -m 0644 misc/dconf-profile-user $(DESTDIR)/etc/dconf/profile/user
+	install -D -m 0644 misc/dconf-db-local-dpi $(DESTDIR)/etc/dconf/db/local.d/dpi
+
 	install -D -m 0755 misc/qubes-desktop-run $(DESTDIR)$(BINDIR)/qubes-desktop-run
 
 	mkdir -p $(DESTDIR)/$(PYTHON_SITEARCH)/qubes/

+ 2 - 0
debian/qubes-core-agent.install

@@ -3,6 +3,8 @@ etc/apt/apt.conf.d/00notify-hook
 etc/apt/apt.conf.d/70no-unattended
 etc/apt/sources.list.d/qubes-r4.list
 etc/apt/trusted.gpg.d/qubes-archive-keyring.gpg
+etc/dconf/profile/user
+etc/dconf/db/local.d/dpi
 etc/default/grub.d/30-qubes.cfg
 etc/fstab
 etc/needrestart/conf.d/50_qubes.conf

+ 1 - 0
debian/qubes-core-agent.postinst

@@ -179,6 +179,7 @@ case "${1}" in
 
         glib-compile-schemas /usr/share/glib-2.0/schemas || true
 
+        dconf update || true
 
         # Update Qubes App Menus
         /usr/lib/qubes/qubes-trigger-sync-appmenus.sh || true

+ 2 - 0
misc/dconf-db-local-dpi

@@ -0,0 +1,2 @@
+[org/gnome/desktop/interface]
+scaling-factor=uint32 1

+ 2 - 0
misc/dconf-profile-user

@@ -0,0 +1,2 @@
+user-db:user
+system-db:local

+ 4 - 0
rpm_spec/core-agent.spec

@@ -368,6 +368,8 @@ if test -f /etc/yum.conf && ! grep -q '/etc/yum\.conf\.d/qubes-proxy\.conf' /etc
   echo 'include=file:///etc/yum.conf.d/qubes-proxy.conf' >> /etc/yum.conf
 fi
 
+dconf update &> /dev/null || :
+
 # And actually setup the proxy usage in package managers
 /usr/lib/qubes/update-proxy-configs
 
@@ -612,6 +614,8 @@ rm -f %{name}-%{version}
 %if %{fedora} < 22
 /etc/yum/post-actions/qubes-trigger-sync-appmenus.action
 %endif
+%config(noreplace) /etc/dconf/profile/user
+%config(noreplace) /etc/dconf/db/local.d/dpi
 /usr/lib/systemd/system/user@.service.d/90-session-stop-timeout.conf
 /usr/sbin/qubes-serial-login
 /usr/bin/qvm-copy-to-vm