39 lines
721 B
Bash
39 lines
721 B
Bash
#!/bin/bash
|
|
|
|
usage_exit () {
|
|
local name="${0##*/}"
|
|
echo "\
|
|
Usage: $name
|
|
$name off
|
|
$name 1.0
|
|
$name 1.5
|
|
$name 2.0"
|
|
exit 1
|
|
}
|
|
|
|
if [[ -n "$2" ]]; then
|
|
usage_exit
|
|
fi
|
|
|
|
scale_go () {
|
|
local pointer_dev=$(xinput | sed -nr '/Virtual core/d;s/^.*id=([0-9]+).*slave +pointer.*$/\1/p')
|
|
local output_dev=$(xrandr | sed -nr 's/^(.*) connected primary.*$/\1/p')
|
|
for x in $output_dev; do
|
|
xrandr --output $x --scale ${1}x${1}
|
|
done
|
|
for x in $pointer_dev ; do
|
|
xinput set-prop $x 'Coordinate Transformation Matrix' ${1} 0 0 0 ${1} 0 0 0 1
|
|
done
|
|
}
|
|
|
|
case "$1" in
|
|
(off|1|1.0)
|
|
scale_go 1 ;;
|
|
(1.5)
|
|
scale_go 1.5 ;;
|
|
(2|2.0)
|
|
scale_go 2 ;;
|
|
(*)
|
|
usage_exit ;;
|
|
esac
|