Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

Użytkownik


Popatrzylem na rozne kombinacje w necie odnosnie xscreensaver i chyba najlepszym wyjsciem bedzie stworzenie skryptu i wrzucenie go na starcie przy pomocy xinitrc albo systemd po starcie xscreensaver.
Plan dzialania dla skryptu:
1. Sprawdzamy okresowo co 10 sekund, czy jeden z programow dla ktorych chcemy zaniechac wygaszania ekranu jest wlaczony w procesach
lista programow [vlc,smplayer,mpv,firefox,chrome...]
2. Jesli punkt powyzszy nie zwroci pustego wyniku to trzeba sprawdzic co ile czasu jest ustawione blokowanie wygaszanie/blokowanie ekranu.
3. W interwale mniejszym niz polowa czasu z punktu 2 wysylamy okresowo komende:
xscrensaver-command --deactivate
Offline

Użytkownik


Troche mnie naszlo na programowanie w bashu i zrobilem skrypt, ktory najlepiej uruchomic automatycznie podczas uruchamiania sesji. W menadzerze sesji trzeba dodac program:
screensaverdispatcher &
Skrypt o nazwie screensaverdispatcher uzywa pliku konfiguracyjnego w katalogu /home/$user/.config/screensaverdispatcher/programs
gdzie wpisujemy nazwe naszego programu dla ktorego chcemy wstrzymac wygaszacz ekranu.
Oto kod:
#!/bin/bash
# operacja pobrania listy programow z pliku konfiguracyjnego
if [ -d $HOME/.config/screensaverdispatcher ]
then
touch $HOME/.config/screensaverdispatcher/programs
else
mkdir $HOME/.config/screensaverdispatcher
touch $HOME/.config/screensaverdispatcher/programs
echo "# Wpisz programy, dla których chcesz wstrzymać działanie
# wygaszacza ekranu xscreensaver.
vlc
firefox
chrome
smplayer
mpv
opera
chromium
" > $HOME/.config/screensaverdispatcher/programs
fi
programy=()
nazwa=()
k=0
for i in `cat $HOME/.config/screensaverdispatcher/programs| grep -v "#"`
do
programy[k]=$i
nazwa[k]+='['
nazwa[k]+=${programy[k]:0:1}
nazwa[k]+=']'
nazwa[k]+=${programy[k]:1}
k=$((k+1))
done
#Sprawdzamy czy programy sie wczytały z pliku konfiguracyjnego
#echo ${programy[@]}
#echo ${nazwa[@]}
trzeba="true"
while [ "true" ]; do
k=0
procesy=()
for i in `echo ${nazwa[@]}`
do
temp=`ps aux| grep $i`
if [ "$temp" ];
then
procesy[k]=$temp
echo "Proces nr: $k"
echo ${procesy[k]}
k=$((k+1))
fi
done
echo "Procesów wymagających wstrzymania wygaszacza: " ${#procesy[@]}
if [[ "${#procesy[@]}" > 0 ]];
then
trzeba="true"
xscreensaver-command --deactivate
else
trzeba="false"
fi
sleep 120
doneOffline
Cześć,
Minęło sporo czasu.
Bardzo przepraszam że nie odpisałem, delikatnie mówiąc zwaliło mi się życie na łeb.
Problem udało mi się rozwiązać w dość prosty sposób, w ustawieniach poprzestawiałem wygaszacz na 3 godziny. Pomogło.
Offline