OSDN Git Service

instantupdate auto repairs repos
[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 m*)
28     # set sensitivity but map volume from 0 to 100
29     if [ -n "$2" ]; then
30         SENSITIVITY=$(echo "( $2 / 50 ) - 1" | bc -l)
31     else
32         SENSITIVITY="-.04"
33     fi
34
35     while read -r line; do
36         xinput set-prop "$line" "libinput Accel Speed" "$SENSITIVITY"
37     done <<<"$(iconf mouse)"
38     ;;
39 z)
40     # toggle mouse on/off
41     if ! iconf mousespeed &>/dev/null; then
42         iconf mousespeed -.4
43     fi
44
45     if [ -e /tmp/zeromouse ]; then
46         rm /tmp/zeromouse
47         while read -r line; do
48             xinput --enable "$line"
49         done <<<"$(iconf mouse)"
50     else
51         while read -r line; do
52             xinput --disable "$line"
53         done <<<"$(iconf mouse)"
54         touch /tmp/zeromouse
55     fi
56
57     ;;
58 r*)
59     if [ -n "$2" ]; then
60         if [ "$2" = "0" ]; then
61             iconf -i reversemouse 1
62         else
63             iconf -i reversemouse 0
64         fi
65     fi
66
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"
73     else
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)"
79     fi
80     ;;
81 l*)
82     # get current sensitivity
83     xinput list-props "$(iconf mouse | head -1)" | grep 'libinput Accel Speed' | head -1 | grep -o '[-.0-9]*$'
84     ;;
85
86 esac