summaryrefslogtreecommitdiff
path: root/.local/bin/fix-dpi
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/fix-dpi')
-rwxr-xr-x.local/bin/fix-dpi28
1 files changed, 9 insertions, 19 deletions
diff --git a/.local/bin/fix-dpi b/.local/bin/fix-dpi
index afcb4a1..0bc5c67 100755
--- a/.local/bin/fix-dpi
+++ b/.local/bin/fix-dpi
@@ -45,18 +45,19 @@ usage() {
printf ' --render-dpi=<auto|auto-hwonly|DPI|XDPIxYDPI>\n'
printf ' Specify what DPI applications should render\n'
printf ' at (default: auto)\n'
- printf ' --device-dpi=OUTPUT=<DPI|XDPIxYDPI>\n'
- printf ' Override the hardware-reported DPI for'
- printf ' the X11 output OUTPUT\n'
+ printf ' --device-geometry=OUTPUT=<X>x<Y>[x<Z>]\n'
+ printf ' Override the hardware-reported physical\n'
+ printf ' dimensions for the X11 output OUTPUT; see\n'
+ printf ' `get-dpi --help`\n'
}
set -euE -o pipefail
-args=$(getopt -n "${0##*/}" -o 'hn' -l 'help,dry-run,render-dpi:,device-dpi:' -- "$@") || errusage
+args=$(getopt -n "${0##*/}" -o 'hn' -l 'help,dry-run,render-dpi:,device-geometry:' -- "$@") || errusage
eval "set -- $args"
arg_dry_run=false
arg_render_dpi=auto
-declare -A arg_device_dpi
+get_dpi_args=()
while (( $# > 0 )); do
case "$1" in
-h|--help)
@@ -81,15 +82,8 @@ while (( $# > 0 )); do
esac
shift 2
;;
- --device-dpi)
- if [[ "$2" != *=* ]]; then
- errusage 'Invalid --device-dpi=%q' "$2"
- fi
- device=${2%=*}
- dpi=${2##*=}
- if ! arg_device_dpi["$device"]="$(sanitize "${dpi%%x*}" 2>/dev/null)x$(sanitize "${dpi#*x}" 2>/dev/null)"; then
- errusage 'Invalid --device-dpi=%q' "$2"
- fi
+ --device-geometry)
+ get_dpi_args+=("$1=$2")
shift 2
;;
--)
@@ -102,7 +96,7 @@ if (( $# > 0 )); then
errusage
fi
-dpis="$(get-dpi)"
+dpis="$(get-dpi "${get_dpi_args[@]}")"
if [[ $arg_render_dpi == auto ]] || [[ $arg_render_dpi == auto-hwonly ]]; then
arg_render_xdpi=96
@@ -111,9 +105,6 @@ if [[ $arg_render_dpi == auto ]] || [[ $arg_render_dpi == auto-hwonly ]]; then
if [[ $arg_render_dpi == auto-hwonly ]] && [[ $source != X11-RandR-hw ]]; then
continue
fi
- if [[ $source == X11-RandR-hw ]]; then
- dpi=${arg_device_dpi["$item"]:-"$dpi"}
- fi
arg_render_xdpi=$(max "$(round "${dpi%%x*}")" "$arg_render_xdpi")
arg_render_ydpi=$(max "$(round "${dpi#*x}")" "$arg_render_ydpi")
done <<<"$dpis"
@@ -134,7 +125,6 @@ fi
if [[ $source != X11-RandR-hw ]]; then
continue
fi
- dpi=${arg_device_dpi["$item"]:-"$dpi"}
hw_xdpi="$(sanitize "${dpi%%x*}")"
hw_ydpi="$(sanitize "${dpi#*x}")"