diff options
Diffstat (limited to '.local/bin/get-dpi')
-rwxr-xr-x | .local/bin/get-dpi | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/.local/bin/get-dpi b/.local/bin/get-dpi new file mode 100755 index 0000000..b9979bd --- /dev/null +++ b/.local/bin/get-dpi @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# Copyright 2019 Luke Shumaker + +sanitize() { + printf '%g\n' "$@" +} + +calc() { + sanitize "$(bc <<<"scale=6; $1")" +} + +# GDK +dpi=$(calc "$(sanitize "${GDK_SCALE:-1}") * 96") +echo environment GDK-widget ${dpi}x${dpi} + +dpi=$(calc "$(sanitize "${GDK_DPI_SCALE:-1}") * 96") +echo environment GDK-text ${dpi}x${dpi} + +# Xft +dpi=$(xrdb -query|sed -n 's/^Xft\.dpi:\s*//p') +[[ -n "$dpi" ]] || dpi=96x96 +xdpi=$(sanitize "${dpi%%x*}") +ydpi=$(sanitize "${dpi#*x}") +echo X11-resources Xft ${xdpi}x${ydpi} + +# RandR +( + export LC_ALL=C + xrandr | sed -rn -e 's@(.*) connected( .*)? ([0-9]+)x([0-9]+)\+([0-9]+)\+([0-9]+)( .*)? ([0-9]+)mm x ([0-9]+)mm( .*)?@\1 \3 \4 \8 \9@p' -e 's@^ ([0-9]+)x([0-9]+)i? .*\*.*@ \1 \2@p' | sed '/^\S/{ N; s/\n//; }' + # 1 2 3 4 5 6 7 8 9 10 1 2 + # `-outputName | `-fb_xpx `-fb_ypx `-fb_xoff `-fb_yoff `- hw_xmm `- hw_ymm | `-hw_xpx `-hw_ypx + # `-discard `- discard `- discard +) | while read -r output fb_xpx fb_ypx hw_xmm hw_ymm hw_xpx hw_ypx; do + hw_xdpi=$(calc "($hw_xpx*25.4)/$hw_xmm") + hw_ydpi=$(calc "($hw_ypx*25.4)/$hw_ymm") + + fb_xdpi=$(calc "($fb_xpx*25.4)/$hw_xmm") + fb_ydpi=$(calc "($fb_ypx*25.4)/$hw_ymm") + + echo X11-RandR-hw $output ${hw_xdpi}x${hw_ydpi} + echo X11-RandR-fb $output ${fb_xdpi}x${fb_ydpi} +done |