Pokud má někdo "nestandardní" pracovní prostředí, třeba jako já používám i3-wm a nebo sway. Pak tu máme různý icewm a podobné, narazí nejspíše na plně podsvětlený monitor. Což není moc fajn na oči. Napsal jsem skript na ovládání backlightu. Pojmenoval jsem ho set_backlight a uložil do složky /usr/sbin/.
sudo -i
cd /usr/sbin/
> set_backlight
chmod +x set_backlight
exit
Místo exit používám klávesovou zkratku ctrl+d
Nyní je třeba si zjistit jak se nazývá "zařízení" které chceme ovládat:ls /sys/class/backlight/
U mne je to amdgpu_bl0
To znamená, že se struktura zařízení nachází na adrese /sys/class/backlight/amdgpu_bl0
Zde je obsah skriptu /usr/sbin/set_backlight#! /usr/bin/env bash
# Ukončovací funkce s chybovou hláškou.
konec (){
echo "only numbers in range from 0 to $max_bright" >&2
exit 1
}
# funkce na test a vymezení mezních hodnot
mezni (){
[[ $aktual -ge $max_bright ]] && aktual=$max_bright
[[ $aktual -le 0 ]] && aktual=0
}
# Adresa složky s hodnotama podsvětlení
# **********************************************
slozka=/sys/class/backlight/amdgpu_bl0
# **********************************************
# Soubor s podsvětlením
backlight_adr="$slozka/brightness"
# aktuální hodnota podsvětlení
bright=$(cat $backlight_adr)
# Maximální povolená hodnota podsvětlení
max_bright=$(cat $slozka/max_brightness)
# Načtení argumentu a vytvoření z něho proměnné $aktual
[ "$1" ] && { aktual=$1; } || aktual=$(xargs $1)
# pokud $aktual začíná znaménkem - nebo + a následují jen číslice, proveď matematickou operaci a korekci mezních hodnot
[[ $aktual =~ ^[-\+][0123456789]{1,4}$ ]] && aktual=$(($aktual+$bright)) && mezni
# Regulární výraz na test čísla minimálně jedno a maximálně tříciferné
# pokud se to nesplňuje ukončí se to chybovou hláškou
! [[ $aktual =~ ^[0123456789]{1,3}$ ]] && konec
# Do teď vše OK, tak zapiš ošetřenou hodnotu na své místo. Při problému to zabal
{ echo $aktual > $backlight_adr &2>/dev/null ; } || konec
Je tam řádek mezi ohvězdičkovanýma komentářema. Jeho hodnotu si změňte podle adresy svého zařízení.
Pak je nutné si přidat tento skript do sudoers aby se nemuselo zadávat heslo při každém použitíradek ALL=NOPASSWD: /usr/bin/set_backlight
Kde radek je uživatel který bude moci skript spouštět. V tomto případě já. Pokud si nejste jistí jaké máte uživatelské jméno, zjistíte to taktoecho $USER
Tři příklady použití skriptu:sudo set_backlight 50
sudo set_backlight +50
sudo set_backlight -50
Kde první příklad nastaví podsvětlení na zadanou hodnotu. Druhý příklad navýší podsvětlení o zadanou hodnotu. A třetí sníží o zadanou hodnotu. Skript je ošetřen proti zadání blbostí. Samozřejmě je nejlepší si to navázat na nějaké klávesové zkratky.
Enjoy