@@ -18,6 +18,10 @@ LG_FAN_MODE=$LG_LAPTOP_DRIVER/fan_mode
1818LG_BATTERY_CHARGE_LIMIT=$LG_LAPTOP_DRIVER /battery_care_limit
1919LG_USB_CHARGE=$LG_LAPTOP_DRIVER /usb_charge
2020
21+ IDEAPAD_LAPTOP_DRIVER=/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/
22+ IDEAPAD_BATTERY_CONSERVATION=$IDEAPAD_LAPTOP_DRIVER /conservation_mode
23+ IDEAPAD_FN_LOCK=$IDEAPAD_LAPTOP_DRIVER /fn_lock
24+
2125check_lg_drivers () {
2226 if [ -d $LG_LAPTOP_DRIVER ]; then
2327 return 0
@@ -26,6 +30,14 @@ check_lg_drivers() {
2630 fi
2731}
2832
33+ check_ideapad_drivers () {
34+ if [ -d $IDEAPAD_LAPTOP_DRIVER ]; then
35+ return 0
36+ else
37+ return 1
38+ fi
39+ }
40+
2941check_dell_thermal () {
3042 smbios-thermal-ctl -g > /dev/null 2>&1
3143 OUT=$?
@@ -161,6 +173,28 @@ set_lg_usb_charge() {
161173 fi
162174}
163175
176+ set_ideapad_battery_conservation (){
177+ enabled=$1
178+ if [ -n " $enabled " ]; then
179+ if [ " $enabled " == " true" ]; then
180+ printf ' 1\n' > $IDEAPAD_BATTERY_CONSERVATION ; 2> /dev/null
181+ else
182+ printf ' 0\n' > $IDEAPAD_BATTERY_CONSERVATION ; 2> /dev/null
183+ fi
184+ fi
185+ }
186+
187+ set_ideapad_fn_lock (){
188+ enabled=$1
189+ if [ -n " $enabled " ]; then
190+ if [ " $enabled " == " true" ]; then
191+ printf ' 0\n' > $IDEAPAD_FN_LOCK ; 2> /dev/null
192+ else
193+ printf ' 1\n' > $IDEAPAD_FN_LOCK ; 2> /dev/null
194+ fi
195+ fi
196+ }
197+
164198read_all () {
165199cpu_min_perf=` cat $CPU_MIN_PERF `
166200cpu_max_perf=` cat $CPU_MAX_PERF `
@@ -213,6 +247,21 @@ if check_lg_drivers; then
213247 fi
214248fi
215249
250+ if check_ideapad_drivers; then
251+ ideapad_battery_conservation=` cat $IDEAPAD_BATTERY_CONSERVATION `
252+ if [ " $ideapad_battery_conservation " == " 1" ]; then
253+ ideapad_battery_conservation=" true"
254+ else
255+ ideapad_battery_conservation=" false"
256+ fi
257+ ideapad_fn_lock=` cat $IDEAPAD_FN_LOCK `
258+ if [ " $ideapad_fn_lock " == " 0" ]; then
259+ ideapad_fn_lock=" true"
260+ else
261+ ideapad_fn_lock=" false"
262+ fi
263+ fi
264+
216265if check_nvidia; then
217266 powermizer=` nvidia-settings -q GpuPowerMizerMode | grep " Attribute 'GPUPowerMizerMode'" | awk -F " ): " ' {print $2}' | awk -F " ." ' {print $1}' `
218267fi
@@ -237,6 +286,10 @@ if check_lg_drivers; then
237286 json=" ${json} ,\" lg_usb_charge\" :\" ${lg_usb_charge} \" "
238287 json=" ${json} ,\" lg_fan_mode\" :\" ${lg_fan_mode} \" "
239288fi
289+ if check_ideapad_drivers; then
290+ json=" ${json} ,\" ideapad_battery_conservation\" :\" ${ideapad_battery_conservation} \" "
291+ json=" ${json} ,\" ideapad_fn_lock\" :\" ${ideapad_fn_lock} \" "
292+ fi
240293if check_nvidia; then
241294 json=" ${json} ,\" powermizer\" :\" ${powermizer} \" "
242295fi
@@ -293,6 +346,14 @@ case $1 in
293346 set_lg_usb_charge $2
294347 ;;
295348
349+ " -ideapad-battery-conservation" )
350+ set_ideapad_battery_conservation $2
351+ ;;
352+
353+ " -ideapad-fn-lock" )
354+ set_ideapad_fn_lock $2
355+ ;;
356+
296357 " -powermizer" )
297358 set_powermizer $2
298359 ;;
@@ -315,6 +376,8 @@ case $1 in
315376 echo " -lg-battery-charge-limit |"
316377 echo " -lg-fan-mode |"
317378 echo " -lg-usb-charge |"
379+ echo " -ideapad-battery-conservation |"
380+ echo " -ideapad-fn-lock |"
318381 echo " -powermizer ] value"
319382 echo " 2: set_prefs.sh -read-all"
320383 exit 3
0 commit comments