xsettings: make Firefox more happy with DPI changes

See https://bugzilla.mozilla.org/show_bug.cgi?id=1554850
This commit is contained in:
Vincent Bernat 2019-05-28 09:23:21 +02:00
parent 339802882a
commit efb006065b

View file

@ -14,21 +14,33 @@ case $(hostname),$(xrandr --current | \
*) dpi=96 ;; *) dpi=96 ;;
esac esac
# Get xsettingsd PID
pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
change() {
# Build xsettingsd.local # Build xsettingsd.local
{ {
cat ~/.config/awesome/xsettingsd cat ~/.config/awesome/xsettingsd
echo Xft/DPI $(( $dpi*1024 )) echo Xft/DPI $(( $1*1024 ))
echo Gdk/WindowScalingFactor $(( $dpi/96 )) echo Gdk/WindowScalingFactor $(( $1/96 ))
echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) )) echo Gdk/UnscaledDPI $(( $1*1024/($1/96) ))
} > ~/.config/awesome/xsettingsd.local } > ~/.xsettingsd
# Signal xsettingsd # Signal xsettingsd
pid=$(xprop -name xsettingsd _NET_WM_PID 2> /dev/null | awk '{print $NF}')
if [ x"$pid" = x ]; then if [ x"$pid" = x ]; then
xsettingsd -c ~/.config/awesome/xsettingsd.local & xsettingsd -c ~/.xsettingsd &
else else
kill -HUP $pid kill -HUP $pid
fi fi
}
if [ x"$pid" != x ]; then
# Change a first time to a DPI that will trigger a scale factor
# change (notably, Firefox needs that).
change $(( $dpi * 2 ))
sleep 1
fi
change $dpi
# Also use xrdb for very old stuff (you know, LibreOffice) # Also use xrdb for very old stuff (you know, LibreOffice)
echo Xft.dpi: $dpi | xrdb -merge echo Xft.dpi: $dpi | xrdb -merge