Scripting

拔下電池時調整亮度的 Bash 腳本

  • April 29, 2019

我正在嘗試設置我的系統並練習腳本等。我在三星 RC520 筆記型電腦 ( Linux 3.11.0-12-generic x86_64) 上執行 Linux Mint 16。我想實現一個腳本,當我拔掉電源時將我的螢幕亮度降低到預設值(並在我重新插入時提高它)。

我可以做一些非常基本的腳本,但不能接近這個水平。我有“xbacklight”,它將從命令行設置亮度,所以當我拔掉電源時,我想要實現的線路是xbacklight -set 20. 我也知道拔掉電源是由 acpi 註冊的;當我插上電源然後重新接通電源時,我得到以下資訊acpi_listen

$ acpi_listen
ac_adapter ADP1 00000080 00000000
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
processor CPU2 00000081 00000000
processor CPU3 00000081 00000000
ac_adapter ADP1 00000080 00000001
processor CPU0 00000081 00000000
processor CPU1 00000081 00000000
processor CPU2 00000081 00000000
processor CPU3 00000081 00000000
battery BAT1 00000080 00000001

所以我知道我必須使用它,但我有兩個主要問題:我不知道將腳本放在哪里以便它自動實現,而且我不知道如何辨識 acpi 中的外掛,因為我只知道該怎麼做acpi_listen

我相信 Linux Mint 帶有pm-utils,這是我用來按照您的要求編寫腳本的。以下是我編寫的腳本,用於在拔下電腦時調暗螢幕(和鍵盤),並在重新插入時恢復亮度:

您必須使腳本可執行並將其放在/etc/pm/power.d/.

#!/bin/sh
# Adjust brightness of backlights based on power source

case $1 in
   # On battery
   true)
       # Dim keyboard backlight
       echo 0 > /sys/class/leds/asus::kbd_backlight/brightness
       # Dim screen backlight
       expr `cat /sys/class/backlight/acpi_video0/max_brightness` / 100 > \
           /sys/class/backlight/acpi_video0/brightness
   ;;

   # On AC
   false)
       # Dim keyboard backlight
       cat /sys/class/leds/asus::kbd_backlight/max_brightness > \
           /sys/class/leds/asus::kbd_backlight/brightness
       # Dim screen backlight
       cat /sys/class/backlight/acpi_video0/max_brightness > \
           /sys/class/backlight/acpi_video0/brightness
   ;;
esac

return 0

true當電腦被拔出和電腦被插入時,使用參數呼叫該腳本false

有關pm-utils 這裡的更多資訊是一個很好的地方。

引用自:https://unix.stackexchange.com/questions/110280