blob: 3c9252a04951e479c207f3722b7f479781a85915 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/usr/bin/env bash
# Copyright 2019 Luke Shumaker
sanitize() {
printf '%g\n' "$@"
}
calc() {
sanitize "$(bc <<<"scale=6; $1")"
}
# Xft
dpi=$(xrdb -query|sed -n 's/^Xft\.dpi:\s*//p')
[[ -n "$dpi" ]] || dpi=96x96
xft_xdpi=$(sanitize "${dpi%%x*}")
xft_ydpi=$(sanitize "${dpi#*x}")
echo X11-resources Xft ${xft_xdpi}x${xft_ydpi}
# GDK
gdk_scale=$(sanitize "${GDK_SCALE:-1}")
dpi=$(calc "${gdk_scale} * 96")
echo environment GDK-widget ${dpi}x${dpi}
gdk_dpi_scale=$(sanitize "${GDK_DPI_SCALE:-1}")
dpi=$(calc "${gdk_scale} * ${gdk_dpi_scale} * ${xft_xdpi}")
echo environment+X11-resources GDK-text ${dpi}x${dpi}
# 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
|