From 7ecb74ae3b5d01f8ed11ed9d6e173ba3bc5a33b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Fri, 12 Jan 2018 05:52:52 +0100 Subject: [PATCH] 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 --- Makefile | 3 +++ debian/qubes-core-agent.install | 2 ++ debian/qubes-core-agent.postinst | 1 + misc/dconf-db-local-dpi | 2 ++ misc/dconf-profile-user | 2 ++ rpm_spec/core-agent.spec | 4 ++++ 6 files changed, 14 insertions(+) create mode 100644 misc/dconf-db-local-dpi create mode 100644 misc/dconf-profile-user diff --git a/Makefile b/Makefile index 791189a..dcbe271 100644 --- a/Makefile +++ b/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/ diff --git a/debian/qubes-core-agent.install b/debian/qubes-core-agent.install index 795b8a8..352c042 100644 --- a/debian/qubes-core-agent.install +++ b/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 diff --git a/debian/qubes-core-agent.postinst b/debian/qubes-core-agent.postinst index eb3b112..014535e 100755 --- a/debian/qubes-core-agent.postinst +++ b/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 diff --git a/misc/dconf-db-local-dpi b/misc/dconf-db-local-dpi new file mode 100644 index 0000000..f1994ed --- /dev/null +++ b/misc/dconf-db-local-dpi @@ -0,0 +1,2 @@ +[org/gnome/desktop/interface] +scaling-factor=uint32 1 diff --git a/misc/dconf-profile-user b/misc/dconf-profile-user new file mode 100644 index 0000000..aca0641 --- /dev/null +++ b/misc/dconf-profile-user @@ -0,0 +1,2 @@ +user-db:user +system-db:local diff --git a/rpm_spec/core-agent.spec b/rpm_spec/core-agent.spec index 49eaa36..763d020 100644 --- a/rpm_spec/core-agent.spec +++ b/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