Отключение хранителя экрана
Добавлено: 2018-07-20 12:57:04
Использую Gentoo. В качестве менеджера окон: Dwm. Логин-менеджер: Slim. У Firefox нет отключения хранителя экрана. Поэтому я накостылил такой сценарий:
Что делает этот сценарий? В основном он формирует заголовок для Dwm: погода, состояние батареи и текущее время/дата. Сюда же я попытался добавить сброс хранителя экрана при обнаружении звука в Pulseaudio. Приведу эту часть сценария:
В чём проблема? Проблема в том, что если я залогинюсь, открою в Dwm консоль и из-под неё запущу мой сценарий, то всё отрабатывает как надо: звук определяется, хранитель экрана сбрасывается. Но если я добавляю запуск этого сценария в .xinitrc, то всё работает за исключением определения звука и, соответственно, сброса хранителя экрана. Такое ощущение, что при запуске из .xinitrc команда "pacmd list-sink-inputs" просто не видит Pulseaudio. При этом пользователь, из под которого запущен сценарий, - это я:
Что можно тут придумать. Или если есть ещё какие-то способы сбрасывать хранителя экрана, то прошу сообщить мне. Спасибо!
Код: Выделить всё
charlzk@Scarlett ~ $ cat .dwm/dwmrc
#!/bin/sh
WEATHER="`curl -s wttr.in/Moscow | sed -nr '3,5s/^.{30}//p' | sed -r 's/ +$//' | sed -r 'N;s/\n/ /;N;s/\n/ /' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g"`"
I=0
while true
do
LOCALTIME="`date +'%a %b %d %H:%M %Z %Y'`"
BAT="B"
if acpi -a | grep off-line > /dev/null
then
BAT=$BAT-
if acpi -b | grep "Discharging, [0-9]%" > /dev/null
then
notify-send -h string:bgcolor:#cc0000 -h string:fgcolor:#000000 "Батарея" "Критический уровень заряда"
fi
else
BAT=$BAT+
fi
if acpi -b|grep --only-matching Full > /dev/null
then
BAT=$BAT" Full"
notify-send -h string:bgcolor:#66FF00 -h string:fgcolor:#000000 "Батарея" "Заряжена полностью"
else
BAT=$BAT" `acpi -b|grep --only-matching --extended-regexp '[[:digit:]]+%+, [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}'|sed s/,//`"
fi
if [ $I==90 ];
then
I=0
WEATHER="`curl -s https://weathermetro.com |grep -E '(wn-location)|(wn-temperature)|(wn-box-condition-row.*(Conditions)|(Wind speed))' | sed -n 's/<img.*">//;s/.*">//;s/<.*>//;s/Conditions:\s//;s/Wind speed:\s//;s/\n/ /;s/\s$//;p' | xargs -n4 -d'\n'`"
fi
if pacmd list-sink-inputs | grep 'state: RUNNING' > /dev/null
then
echo "11" >> /home/charlzk/dbg.txt
xscreensaver-command -deactivate > /dev/null
fi
xsetroot -name "$WEATHER $BAT $LOCALTIME"
I=$I+1
sleep 10s
done
Код: Выделить всё
if pacmd list-sink-inputs | grep 'state: RUNNING' > /dev/null
then
echo "11" >> /home/charlzk/dbg.txt
xscreensaver-command -deactivate > /dev/null
fi
Код: Выделить всё
charlzk@Scarlett ~ $ ps axu|grep dwmrc
charlzk 4579 0.0 0.1 11544 3068 ? S 12:24 0:00 /bin/sh .dwm/./dwmrc
charlzk 7970 0.0 0.0 10824 900 pts/1 S+ 12:53 0:00 grep --colour=auto dwmrc