2014-09-17 10:39:22 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
2020-01-31 07:24:52 +01:00
|
|
|
# Compute DPI of each screens
|
2021-07-21 09:43:38 +02:00
|
|
|
dpis=$(xrandr --current \
|
2021-07-15 18:13:14 +02:00
|
|
|
| sed -En 's/^([^ ]+)* connected.* ([0-9]+)x.* ([0-9]+)mm x .*/\1 \2 \3/p' \
|
|
|
|
| while read output pixels mm; do
|
|
|
|
|
|
|
|
# Compute DPI
|
|
|
|
dpi=$((pixels * 254 / 10 / mm))
|
|
|
|
|
2020-01-29 23:31:21 +01:00
|
|
|
# For laptop screens, we need to apply a correction factor
|
|
|
|
case $output in
|
|
|
|
eDP-1|eDP1) corrected=$(($dpi * 96/144)) ;;
|
2020-01-31 00:00:07 +01:00
|
|
|
*) corrected=$dpi ;;
|
2020-01-29 23:31:21 +01:00
|
|
|
esac
|
2021-07-15 18:13:14 +02:00
|
|
|
|
2020-01-29 23:31:21 +01:00
|
|
|
# Authorized factors: 1, 1.5, 2, 3, 4, ...
|
|
|
|
rounded=$(((corrected + 24) / 48 * 48))
|
|
|
|
[ $rounded -gt 192 ] && rounded=$(((corrected + 48) / 96 * 96))
|
|
|
|
[ $rounded -lt 96 ] && rounded=96
|
2021-07-15 18:13:14 +02:00
|
|
|
|
2020-01-29 23:31:21 +01:00
|
|
|
echo "$output: ${dpi}dpi (corrected to ${corrected}dpi, rounded to ${rounded}dpi)" >&2
|
2021-07-15 18:13:14 +02:00
|
|
|
echo "$rounded"
|
2021-07-21 09:44:12 +02:00
|
|
|
done \
|
|
|
|
| tr '\n' ' ')
|
2020-01-29 04:59:12 +01:00
|
|
|
|
2020-01-31 07:24:52 +01:00
|
|
|
# Use first screen DPI
|
2020-01-31 10:08:37 +01:00
|
|
|
dpi=${dpis%% *}
|
2020-01-31 07:24:52 +01:00
|
|
|
dpi=${dpi:-96}
|
2015-07-23 13:23:09 +02:00
|
|
|
|
2020-01-30 08:22:36 +01:00
|
|
|
echo "using ${dpi}dpi" >&2
|
2021-07-04 14:54:07 +02:00
|
|
|
echo Xft.dpi: $dpi | xrdb -merge
|
2020-01-29 23:12:55 +01:00
|
|
|
xrandr --dpi $dpi
|
|
|
|
|
2020-02-08 16:44:17 +01:00
|
|
|
# Build xsettingsd
|
2020-01-29 23:12:55 +01:00
|
|
|
{
|
2021-07-05 09:46:37 +02:00
|
|
|
cat ~/.config/i3/dotfiles/xsettingsd
|
2020-01-30 08:22:36 +01:00
|
|
|
echo Xft/DPI $(( $dpi*1024 ))
|
|
|
|
echo Xft/RGBA \"$( [ $dpi -gt 144 ] && echo none || echo rgb )\"
|
|
|
|
echo Gdk/WindowScalingFactor $(( $dpi/96 ))
|
|
|
|
echo Gdk/UnscaledDPI $(( $dpi*1024/($dpi/96) ))
|
2020-01-29 23:12:55 +01:00
|
|
|
} > ~/.xsettingsd
|