aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/fastmouse42
1 files changed, 42 insertions, 0 deletions
diff --git a/scripts/fastmouse b/scripts/fastmouse
new file mode 100755
index 0000000..238b614
--- /dev/null
+++ b/scripts/fastmouse
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+default_accel="-0.90"
+
+set_pointer_accel() {
+ devices=$(busctl --user -- call \
+ org.kde.KWin \
+ /org/kde/KWin/InputDevice \
+ org.freedesktop.DBus.Properties \
+ Get ss org.kde.KWin.InputDeviceManager devicesSysNames \
+ | cut -d' ' -f4- | tr -d '"')
+
+ for device in $devices; do
+ busctl --user -- call \
+ org.kde.KWin \
+ "/org/kde/KWin/InputDevice/${device}" \
+ org.freedesktop.DBus.Properties \
+ Set ssv org.kde.KWin.InputDevice pointerAcceleration d "${1}"
+ done
+}
+
+
+division="${1}"
+if [ "${division}" -le 1 ]; then
+ printf "${0}: divisor must be more than or equal to one\n"
+ exit 1
+fi
+shift
+
+if [[ "${1}" != "--" ]]; then
+ printf "Usage: ${0} [divisor] -- [command...]\n"
+ exit 1
+fi
+shift
+
+sudo su -c "echo ${division} > /sys/module/hid/parameters/division"
+set_pointer_accel $(echo "((1.0 + ${default_accel}) * ${division}) - 1.0" | bc)
+
+"${@}"
+
+sudo su -c "echo 1 > /sys/module/hid/parameters/division"
+set_pointer_accel "${default_accel}"