Adjusting the Brightness of the Laptop Screen on Debian GNU/Linux 10

Adjusting the Brightness of the Laptop Screen on Debian GNU/Linux 10

【摘要】敘述調整筆記型電腦螢幕亮度的方法,包括:修改 grub 檔,用 xrandr 指令,和直接更改系統設定值。


【目錄】

    【前言
    【方法一:修改 grub 檔
    【方法二:用 xrandr 指令
    【方法三:直接更改系統設定值
    【後語

【前言】

約三年前曾發表過「Linux 系統改變筆電螢幕亮度的五種方法」,當時是用 Ubuntu 系統。近日重新檢視,更新內容,分享於此,作業系統是自製的 Fluxbox Debian GNU/Linux 10


【方法一:修改 grub 檔】

如果原本就有按鍵可以調整亮度,應該先想辦法讓它生效。

一、以 root 權限開啟 /etc/default/grub 檔,在 GRUB_CMDLINE_LINUX 一行增加以下內容:

acpi_osi=Linux acpi_backlight=video

二、更新。

sudo update-grub

三、重新開機。


註一:acpi_backlightvendor 也可以。

註二:此法對本例的機型有效,但不知其他的有無效果。


【方法二:用 xrandr 指令】

此法像是覆蓋一層半透明的黑紗,色彩會不太一樣。

一、找出界面名稱。

xrandr --query | grep " connected"

xrandr --current | grep " connected"

提醒connected 前面要有一個空格。

本例顯示的是:

LVDS-1 connected ......

LVDS-1 就是所要的名稱。

註:在某些狀況,會是 LVDS1,二者並不相同。


二、調整亮度。

xrandr --output LVDS-1 --brightness 設定值

  設定值:0 到 1 的浮點數,1 全開,0 全關。

提醒:設定值是可以超過 1.0,但不建議這麼做,以免螢幕燒掉。


三、寫成 BASH 指令。

每次調亮度還要開啟虛擬終端機輸入指令很麻煩。本例將上述指令寫成 BASH 檔,然後在 FluxBox 的 keys 檔中設定快捷鍵執行這些檔案,即能很方便地調整亮度。

⒈ 調亮

將以下內容存成 brighter 檔,放在 $HOME/.local/bin/ 目錄。

#取得界面名稱
INTERFACE=$(xrandr --current | grep " connected" | awk '{ print $1 }')
#取得目前亮度
BRIGHTNESS=$(xrandr --verbose | grep "Brightness" | awk '{ print $2 }')
#放大百倍,因為 BASH 無法比較小數
BRIGHTNESS=$(awk -v VAL=${BRIGHTNESS} 'BEGIN { print VAL*100 }')
#若目前亮度為最大值 1.0,即中止程式
if [ ${BRIGHTNESS} -ge 100 ]; then exit; fi
#提高亮度 10%
BRIGHTNESS=$((${BRIGHTNESS}+10))
#若亮度大於 1.0,即設為 1.0
if [ ${BRIGHTNESS} -ge 100 ]; then BRIGHTNESS=100; fi
#縮小百倍
BRIGHTNESS=$(awk -v VAL=${BRIGHTNESS} 'BEGIN { print VAL/100 }')
#設定亮度
xrandr --output ${INTERFACE} --brightness ${BRIGHTNESS}

⒉ 調暗

將以下內容存成 darker 檔,放在 $HOME/.local/bin/ 目錄。

#取得界面名稱
INTERFACE=$(xrandr --current | grep " connected" | awk '{ print $1 }')
#取得目前亮度
BRIGHTNESS=$(xrandr --verbose | grep "Brightness" | awk '{ print $2 }')
#放大百倍,因為 BASH 無法比較小數
BRIGHTNESS=$(awk -v VAL=${BRIGHTNESS} 'BEGIN { print VAL*100 }')
#若目前亮度為最小亮度,即中止程式
if [ ${BRIGHTNESS} -le 0 ]; then exit; fi
#降低亮度 10%
BRIGHTNESS=$((${BRIGHTNESS}-10))
#若亮度小於 0,即設為 0
if [ ${BRIGHTNESS} -le 0 ]; then BRIGHTNESS=0; fi
#縮小百倍
BRIGHTNESS=$(awk -v VAL=${BRIGHTNESS} 'BEGIN { print VAL/100 }')
#設定亮度
xrandr --output ${INTERFACE} --brightness ${BRIGHTNESS}

四、設定快捷鍵。

本例在 $HOME/.fluxbox/keys 檔加入以下兩行,重新啟動 FluxBox 即可使用。各位請在自己的快捷鍵檔加入相關設定。

Mod4 Right : Exec bash $HOME/.local/bin/brighter
Mod4 Left : Exec bash $HOME/.local/bin/darker

【方法三:直接更改系統設定值】

這一節所謂的設定值是指鍵盤中直接設定螢幕亮度的按鍵所控制的值。

一、先看 /sys/class/backlight/ 目錄裡有哪些目錄。

ls /sys/class/backlight/

本例有 acpi_video0intel_backlight 兩個目錄,且其中的內容都一樣。兩個之中只有一個目錄是目前採用的。經試驗,本例採用的是 intel_backlight


二、用 cat 指令看一些檔案的內容。

cat /sys/class/backlight/intel_backlight/brightness
cat /sys/class/backlight/intel_backlight/actual_brightness
cat /sys/class/backlight/intel_backlight/max_brightness

其中 brightnessactual_brightness 的值一樣,這是目前的設定值。而 max_brightness 是容許的最大值,本例是 976。


三、更改設定值。

要用 root 權限。

sudo su
echo 500 > /sys/class/backlight/intel_backlight/brightness

以上指令將亮度改成約一半,可以立即看到效果。如果要寫成一行,可用:

echo 500 | sudo tee /sys/class/backlight/intel_backlight/brightness > /dev/null

四、本例用鍵盤改變亮度共有十階,分別是 976、876、780、681、585、486、390、290、195、95,也就是 100%, 90%, 80%, …, 10%。


五、如果鍵盤按鍵失效,可以模仿前一節的 BASH 指令,自己寫兩個調整亮度的檔案,用快捷鍵調整螢幕亮度。因為本例用第一個方法已經可以直接用按鍵控制亮度了,所以略過此項。


【後語】

一、本例的筆電是前面兩個方法並用,各調整一半。


二、另外也有安裝 xbacklight 程式來控制亮度的方法,有興趣的人可以自己試試。

發表留言