xsettingsd is already used by KDE GTK Configurator, so I manually added Gdk/WindowScalingFactor 2 and Gdk/UnscaledDPI 98340 to ~/.config/xsettingsd/xsettingsd.conf, sent SIGHUP to xsettingsd, then restart a GTK 3 or 4 app while having GDK_SCALE and GDK_DPI_SCALE unset. I then finally have correctly scaled text and UI for all of GTK 3, 4, Qt, GLFW!

It's working for me too. bottles and easyeffects

One problem is, easyeffects is doulble scaled again after first launch. After reboot it looks correctly once then fall back to double scale.

In [3]:
! systemctl --user status xsettingsd.service
● xsettingsd.service - XSETTINGS-protocol daemon
     Loaded: loaded (]8;;file://archlinux/usr/lib/systemd/user/xsettingsd.service/usr/lib/systemd/user/xsettingsd.service]8;;; static)
     Active: active (running) since Thu 2022-10-13 03:03:10 KST; 2h 1min ago
   Main PID: 6627 (xsettingsd)
      Tasks: 1 (limit: 18992)
     Memory: 464.0K
        CPU: 3ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/xsettingsd.service
             └─6627 /usr/bin/xsettingsd

10월 13 03:03:10 archlinux systemd[1189]: Started XSETTINGS-protocol daemon.
10월 13 03:03:10 archlinux xsettingsd[6627]: xsettingsd: Loaded 13 settings…onf
10월 13 03:03:10 archlinux xsettingsd[6627]: xsettingsd: Created window 0x7…203
10월 13 03:03:10 archlinux xsettingsd[6627]: xsettingsd: Selection _XSETTIN…0x0
10월 13 03:03:10 archlinux xsettingsd[6627]: xsettingsd: Took ownership of …_S0
Hint: Some lines were ellipsized, use -l to show in full.
In [4]:
! cat /home/a/.config/xsettingsd/xsettingsd.conf
Net/ThemeName "Breeze"
Gtk/EnableAnimations 1
Gtk/DecorationLayout "icon:minimize,maximize,close"
Gtk/PrimaryButtonWarpsSlider 0
Gtk/ToolbarStyle 3
Gtk/MenuImages 1
Gtk/ButtonImages 1
Gtk/CursorThemeSize 72
Gtk/CursorThemeName "Oxygen_White"
Net/IconThemeName "breeze"
Gtk/FontName "NotoSans Nerd Font,  10"
Gdk/WindowScalingFactor 3
Gdk/UnscaledDPI 98340
In [1]:
! env | grep GDK
GDK_DPI_SCALE=0.333
GDK_SCALE=3
In [9]:
# my shell is fish. erasing(unset) env vars.
! set -e GDK_DPI_SCALE GDK_SCALE ; env | grep GDK
In [ ]:
# no output

bottles is ok after these setup. easyeffects are ok only first launch.