diff options
Diffstat (limited to '.local/bin/fix-dpi')
-rwxr-xr-x | .local/bin/fix-dpi | 28 |
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}")" |