#!/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