From 80c80d364563dbdcc789d2ddf68f1fd909dfd5a3 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 3 May 2019 14:57:11 -0400 Subject: fix-dpi: Disallow regressions in DPI due to monitors going away --- .local/bin/fix-dpi | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/.local/bin/fix-dpi b/.local/bin/fix-dpi index 90019c2..251b0ad 100755 --- a/.local/bin/fix-dpi +++ b/.local/bin/fix-dpi @@ -26,15 +26,27 @@ declare -A outputs while read -r output fb_xpx fb_ypx hw_xmm hw_ymm hw_xpx hw_ypx; do - xdpi=$(bc <<<"($hw_xpx*25.4)/$hw_xmm") - ydpi=$(bc <<<"($hw_ypx*25.4)/$hw_ymm") - if (( xdpi > max_xdpi )); then - max_xdpi=$xdpi + hw_xdpi=$(bc <<<"($hw_xpx*25.4)/$hw_xmm") + hw_ydpi=$(bc <<<"($hw_ypx*25.4)/$hw_ymm") + + fb_xdpi=$(bc <<<"($fb_xpx*25.4)/$hw_xmm") + fb_ydpi=$(bc <<<"($fb_ypx*25.4)/$hw_ymm") + + if (( hw_xdpi > max_xdpi )); then + max_xdpi=$hw_xdpi + fi + if (( hw_ydpi > max_ydpi )); then + max_ydpi=$hw_ydpi fi - if (( ydpi > max_ydpi )); then - max_ydpi=$ydpi + + if (( fb_xdpi > max_xdpi )); then + max_xdpi=$fb_xdpi + fi + if (( fb_ydpi > max_ydpi )); then + max_ydpi=$fb_ydpi fi - outputs["$output"]="$xdpi $ydpi" + + outputs["$output"]="$hw_xdpi $hw_ydpi" done echo 'xrandr \' printf ' --dpi %q \\\n' "${max_xdpi}x${max_ydpi}" -- cgit v1.1-4-g5e80