Tak se nikdo neozval, to mě mrzí. Po nějaké době, kdy jsem už trošku zběhlejší jsme se to pokusil řešit sám scriptem co běží po přihlášení v uživatelském prostoru a využívá program xbacklight, ovšem jeho velmi časté opakování (kratší než cca 2.5s) způsobí že po zavření víka notebooku se ještě uloží nulový jas (zhaslý displej). Šlo by to nějak vyřešit? Zkoušel jsem jen program killnout scriptem v /etc/pc/suspend.d/ při uspání a obnovit při otevření, ale to se spustí až po zhasnutí displeje, takže to problém neřeší.
EDIT: zatím jsem dodal ošetřující podmínky že nemá ukládat jas an i nic nastavovat pokud je aktuální jas displeje 0 a script se opakuje každou sekundu. Nějaké jiné řešení?
Script přikládám.
- konfigurační soubor je v /home/user/.jas_ac_bat a má na prvním řádku mezerami oddělenou konfiguraci-viz script
- dva dočasné soubory v /tmp/jas_ac_bat/ pro uchování jasu na baterku/napájení ze sítě
- nastavitelná doba opakování
- nastavitelná doba tlumení/zesílení jasu displeje při přěchodu
#!/bin/bash
# nastavce scriptu špouštění po přihlášení, nepoužívejte sudo, vytváří si konfiguraci v domovské složce aktuálního uživatele!
#+ nastavit práva pro spuštění pokud jste program získali z uložišť nepodporujících linuxová práva
#chmod +x ~/jas_ac_bat
# pro chod je potřeba program xbacklight, otestovat zda ho máte a případně nainstalovat provede níže uvedený zakomentovaný script
#test nainstalování programu
#if [ ! -e "/usr/bin/xbacklight" ]; then
# echo "Nemáte nainstalovaný program xbacklight, doinstalovávám";
# sudo apt-get install xbacklight;
#fi
# pro náročnější doporučuju přiřadit vlastní alias příkaz do ~/.bash_aliases s vlastní cestou
# echo "alias jas-manager='~/.MojeScripty/jas_ac_bat &'" >> ~/.bash_aliases
#opakuj donekonečna
while [ 1 ]; do
#konfigurační soubor v home + cesta k němu
konfig=".jas_ac_bat"
file_konfig=$HOME"/"$konfig
#hodnoty použité pro vytvoření konfiguráku ve stejném pořadí
default_bat=30
default_ac=100
prechod=800 #doba stmívání/rozednívání
opakovani=5 #jak často s emá script opakovat
#kam se mají ukládat dočasné soubory
cesta="/tmp/jas_ac_bat"
file_last_bat=$cesta"/"$USER"/last_bat"
file_last_ac=$cesta"/"$USER"/last_ac"
file_last_state=$cesta"/"$USER"/last_state"
#test existence cest a souborů s konfigurací + čtení konfiguráku
if [ ! -e $file_konfig ]; then
echo $default_bat" "$default_ac" "$prechod" "$opakovani > $file_konfig
echo "#bat ac přechod opakování" >> $file_konfig
fi
#načteí nonfigurace
bat=$(cat $file_konfig | head -1 | cut -d " " -f 1)
ac=$(cat $file_konfig | head -1 | cut -d " " -f 2)
dimm=$(cat $file_konfig | head -1 | cut -d " " -f 3)
repeat=$(cat $file_konfig | head -1 | cut -d " " -f 4)
#otestování existence a případné vytvoření dočasných souborů
if [ ! -d $cesta ]; then mkdir $cesta; mkdir $cesta"/"$USER; fi
if [ ! -e $file_last_bat ]; then echo $bat > $file_last_bat; fi
if [ ! -e $file_last_ac ]; then echo $ac > $file_last_ac; fi
#zjištění stavu připojení adaptéru a aktuálního jasu
AC_adapter=$(ls /sys/class/power_supply | grep "ADP\|AC")
napajeni=$(cat /sys/class/power_supply/$AC_adapter/online)
akt_jas=$(xbacklight -get | cut -d . -f 1)
#zapsání posledního známého stavu
echo $napajeni > $file_last_state
case $napajeni in
1) # ze sítě
#bat->ac
if [ $(cat $file_last_state) -ne 0 ]; then
if [ $akt_jas != $(cat $file_last_bat) ] && [ $akt_jas != 0 ];then
echo $akt_jas > $file_last_ac;
fi
if [ $akt_jas != $(cat $file_last_ac) ] && [ $akt_jas != 0 ];then
xbacklight -time $dimm -set $(cat $file_last_ac);#zmena
fi
fi
;;
0) # z baterie
#ac->bat
if [ $(cat $file_last_state) -ne 1 ]; then
if [ $akt_jas != $(cat $file_last_ac) ] && [ $akt_jas != 0 ];then
echo $akt_jas > $file_last_bat;
fi
if [ $akt_jas != $(cat $file_last_bat) ] && [ $akt_jas != 0 ];then
xbacklight -time $dimm -set $(cat $file_last_bat);
fi
fi
;;
esac
sleep $repeat;
done
exit 0