2
2
3
3
package=' Tuxedo Backlight Control <tuxedo-backlight-control>'
4
4
version=' 0.1'
5
- date=' 2019-03-05 '
5
+ date=' 2019-04-25 '
6
6
author=
' Kevin Van Lierde <[email protected] >'
7
7
conf_path=' /etc/modprobe.d/tuxedo_keyboard.conf'
8
-
9
- opt=" $1 "
10
- color=" $2 "
8
+ module_path=' /sys/module/tuxedo_keyboard'
11
9
12
10
# see https://github.com/tuxedocomputers/tuxedo-keyboard
11
+
13
12
declare -A opts
14
13
opts[' breathe' ]=' mode=1'
15
14
opts[' cycle' ]=' mode=2'
@@ -22,8 +21,8 @@ opts['off']='state=0'
22
21
opts[' color' ]=' mode=0'
23
22
24
23
# see https://www.cssportal.com/html-colors/orig-16-colors.php
25
- declare -A colors
26
24
25
+ declare -A colors
27
26
colors[' white' ]=' FFFFFF'
28
27
colors[' yellow' ]=' FFFF00'
29
28
colors[' fuchsia' ]=' FF00FF'
@@ -45,14 +44,20 @@ colors['pink']='FFC0CB'
45
44
colors[' turquoise' ]=' 40E0D0'
46
45
47
46
48
- if [ ! -f $conf_path ]
47
+ if [ ! -e $conf_path ]
49
48
then
50
49
echo " Cannot start tuxedo-backlight-control:"
51
50
echo " tuxedo_keyboard conf not found at $conf_path ."
52
51
exit
53
52
fi
54
53
55
- if [ $opt == ' --help' ] || [ $opt == ' -h' ]
54
+ opt=" $1 "
55
+ color_left=" $2 "
56
+ color_center=" $color_left "
57
+ color_right=" $color_left "
58
+ color_extra=" $color_left "
59
+
60
+ if [ " $opt " == ' --help' ] || [ " $opt " == ' -h' ]
56
61
then
57
62
echo -ne ' \n'
58
63
echo " $package - v$version - $date "
@@ -73,6 +78,7 @@ if [ $opt == '--help' ] || [ $opt == '-h' ]
73
78
echo ' fuchsia, purple, rose, cyan, turquoise, teal, blue, navy,'
74
79
echo ' olive, lime, green'
75
80
echo -ne ' \n'
81
+ echo ' Report bugs at https://github.com/webketje/tuxedo-backlight-control/issues'
76
82
echo ' For info on the tuxedo_keyboard kernel module, see https://github.com/tuxedocomputers/tuxedo-keyboard'
77
83
echo -ne ' \n'
78
84
exit
@@ -98,22 +104,57 @@ if [ "$opt" == 'ui' ]
98
104
exit
99
105
fi
100
106
101
- if [ " $opt " == ' color ' ] && ([ ! " $color " ] || [ ! ${colors [${color }]} ])
107
+ if [ ! " $opt " ] || [ ! ${opts [${opt }]} ]
102
108
then
103
- echo ' No or invalid color provided for keyboard backlight'
109
+ echo ' backlight: No or invalid option provided for keyboard backlight'
104
110
exit
105
- elif [ ! " $opt " ] || [ ! ${opts[${opt}]} ]
111
+ elif [ " $opt " == ' color ' ]
106
112
then
107
- echo ' No or invalid option provided for keyboard backlight'
108
- exit
109
- fi
113
+ if [ ! " $color_left " ] || [ ! ${colors[${color_left}]} ]
114
+ then
115
+ echo ' backlight: No or invalid color provided for keyboard backlight'
116
+ exit
117
+ elif [ " $3 " ] && [ ! " $4 " ]
118
+ then
119
+ echo ' backlight: Please provide a single or 3 colors (left, center, right)'
120
+ exit
121
+ elif [ " $3 " ] && [ " $4 " ]
122
+ then
123
+ if [ ! ${colors[${3}]} ]
124
+ then
125
+ echo " backlight: '$3 ' is not a supported color"
126
+ exit
127
+ elif [ ! ${colors[${4}]} ]
128
+ then
129
+ echo " backlight: '$4 ' is not a supported color"
130
+ exit
131
+ else
132
+ color_center=" $3 "
133
+ color_right=" $4 "
134
+ fi
110
135
136
+ if [ " $5 " ]
137
+ then
138
+ if [ ! ${colors[${5}]} ]
139
+ then
140
+ echo " backlight: '$4 ' is not a supported color"
141
+ exit
142
+ else
143
+ color_extra=" $5 "
144
+ fi
145
+ fi
111
146
112
- eval ' sudo rmmod tuxedo_keyboard'
147
+ fi
148
+ fi
149
+
150
+ if [ -e $module_path ]
151
+ then
152
+ eval ' sudo rmmod tuxedo_keyboard'
153
+ fi
113
154
114
155
if [ " $opt " == ' color' ]
115
156
then
116
- eval " echo \" options tuxedo_keyboard ${opts[${opt}]} color_left=0x${colors[${color }]} color_center=0x${colors[${color }]} color_right=0x${colors[${color }]} \" > /etc/modprobe.d/tuxedo_keyboard.conf"
157
+ eval " echo \" options tuxedo_keyboard ${opts[${opt}]} color_left=0x${colors[${color_left }]} color_center=0x${colors[${color_center }]} color_right=0x${colors[${color_right}]} color_extra=0x ${colors[${color_extra }]}\" > /etc/modprobe.d/tuxedo_keyboard.conf"
117
158
else
118
159
eval " echo \" options tuxedo_keyboard ${opts[${opt}]} \" > /etc/modprobe.d/tuxedo_keyboard.conf"
119
160
fi
0 commit comments