3 ##################################
4 ## set mouse speed for libinput ##
5 ##################################
9 # detect connected mouse devices
10 IDS=$(xinput | grep -o 'id=[0-9]*' | grep -o '[0-9]*')
11 echo "generating mouse IDS"
12 [ -e /tmp/mouse ] && rm /tmp/mouse
13 while read -r line; do
14 if xinput list-props "$line" | grep -q 'libinput Accel Speed'; then
16 echo "$line" >>/tmp/mouse
19 iconf mouse "$(cat /tmp/mouse)"
23 while read -r line; do
24 xinput set-prop "$line" "libinput Accel Speed" "${2:--0.4}"
25 done <<<"$(iconf mouse)"
28 # set sensitivity but map volume from 0 to 100
30 SENSITIVITY=$(echo "( $2 / 50 ) - 1" | bc -l)
35 while read -r line; do
36 xinput set-prop "$line" "libinput Accel Speed" "$SENSITIVITY"
37 done <<<"$(iconf mouse)"
41 if ! iconf mousespeed &>/dev/null; then
45 if [ -e /tmp/zeromouse ]; then
47 while read -r line; do
48 xinput --enable "$line"
49 done <<<"$(iconf mouse)"
51 while read -r line; do
52 xinput --disable "$line"
53 done <<<"$(iconf mouse)"
60 if [ "$2" = "0" ]; then
61 iconf -i reversemouse 1
63 iconf -i reversemouse 0
67 if iconf -i reversemouse; then
68 iconf -i reversemouse 0
69 while read -r line; do
70 xinput set-prop "$line" "libinput Natural Scrolling Enabled" "0"
71 done <<<"$(iconf mouse)"
72 echo "reverse scrolling disabled"
74 iconf -i reversemouse 1
75 echo "reverse scrolling enabled"
76 while read -r line; do
77 xinput set-prop "$line" "libinput Natural Scrolling Enabled" "1"
78 done <<<"$(iconf mouse)"
82 # get current sensitivity
83 xinput list-props "$(iconf mouse | head -1)" | grep 'libinput Accel Speed' | head -1 | grep -o '[-.0-9]*$'