OSDN Git Service

add reverse scrolling to instantmouse
[instantos/instantOS.git] / programs / instantmouse
1 #!/bin/bash
2
3 ##################################
4 ## set mouse speed for libinput ##
5 ##################################
6
7 case "$1" in
8 g*)
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
15             echo "$line"
16             echo "$line" >>/tmp/mouse
17         fi
18     done <<<"$IDS"
19     iconf mouse "$(cat /tmp/mouse)"
20     ;;
21 s*)
22     # set sensitivity
23     while read -r line; do
24         xinput set-prop $line "libinput Accel Speed" "${2:--0.4}"
25     done <<<"$(iconf mouse)"
26     ;;
27 r*)
28     if [ -n "$2" ]; then
29         if [ "$2" = "0" ]; then
30             iconf -i reversemouse 1
31         else
32             iconf -i reversemouse 0
33         fi
34     fi
35
36     if iconf -i reversemouse; then
37         iconf -i reversemouse 0
38         while read -r line; do
39             xinput set-prop $line "libinput Natural Scrolling Enabled" "0"
40         done <<<"$(iconf mouse)"
41         echo "reverse scrolling disabled"
42     else
43         iconf -i reversemouse 1
44         echo "reverse scrolling enabled"
45         while read -r line; do
46             xinput set-prop $line "libinput Natural Scrolling Enabled" "1"
47         done <<<"$(iconf mouse)"
48     fi
49     ;;
50 l*)
51     # get current sensitivity
52     xinput list-props "$(iconf mouse | head -1)" | grep 'libinput Accel Speed' | head -1 | grep -o '[-.0-9]*$'
53     ;;
54
55 esac