It's per screen, though ; you can have different Xresources on different screens bound to different monitors, I'm running such configuration just fine. Actually, since most of the software I'm using is GTK-based, my per-monitor DPI configuration tool(s) are a pair of xsettingsd running with different DISPLAY variables, and having different Xft/DPI values (and a few other tweaks, like different font rendering options). I'm running two openbox instances , xfce4-panel and tint2 , and two picom instances to properly support client side decorations. And I'm trying to scrape some time to patch xfwm4 and xfce4-panel to support per-screen processes for both . This way I'm driving 24" 4K as my primary display, for coding/browsing/etc, and 24" 2K as a sidekick for monitoring/documentation/spotify/etc
My .xsession:
xrdb -screen -display :0.0 -merge .Xresources-0.0
xrdb -screen -display :0.1 -merge .Xresources-0.1
nohup /usr/lib64/xfce4/xfconf/xfconfd &
export FREETYPE_PROPERTIES="cff:no-stem-darkening=0 autofitter:no-stem-darkening=0 cff:darkening-parameters=500,500,2000,450,3300,450,4600,200"
export DISPLAY=:0.0
export GDK_SCALE=2
export GDK_DPI_SCALE=0.5
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCREEN_SCALE_FACTORS=2
nohup xsettingsd -c ~/.xsettingsd-0.0 -s 0 &
nohup openbox --config-file ~/.config/openbox/rc-0.0.xml &
~/Apps/Picom/picom --vsync --use-ewmh-active-win --no-frame-pacing --backend glx -b
nohup xfce4-panel --display=:0.0 &
nohup /usr/lib64/xfce4/notifyd/xfce4-notifyd &
export FREETYPE_PROPERTIES="cff:no-stem-darkening=0 autofitter:no-stem-darkening=0"
export DISPLAY=:0.1
unset GDK_SCALE
unset GDK_DPI_SCALE
unset QT_SCREEN_SCALE_FACTORS
nohup xsettingsd -c ~/.xsettingsd-0.1 -s 1 &
nohup openbox --config-file ~/.config/openbox/rc-0.1.xml &
~/Apps/Picom/picom --vsync --use-ewmh-active-win --no-frame-pacing --backend glx -b
nohup tint2 &
wait