blob: c8e8a0f409a4ed8f3250321b5d0230c394a96e4a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#!/bin/bash
# Script to adjust dpms settings when running certain programs,
# that don't use fullscreen, but should not be "blanked" in between.
# Programs are defined in separate config file ~/.config/dpms
# Run as timed user script (i.e. adjust_dpms@.service) with systemd
# from /etc/systemd/system/timer-minutely.target.wants
export DISPLAY=:0.0
config="/home/$(whoami)/.config/dpms"
blankoff=0
# check for config file existence
if [[ -f $config ]];then
. /home/dave/.config/dpms
else
echo "Config file not readable $config"
exit 1
fi
# loop all programs and check for running instances
for i in "${programs[@]}"
do
pid=$(pidof -x $i)
re='^[0-9]+$'
if [[ $pid =~ $re ]]; then
echo "$i running ($pid)"
blankoff=1
fi
done
# if valuable programs are running, don't use screen blanking
if [ $blankoff -gt 0 ]; then
echo "Some program requires screensaver to be off."
# print currently set values for screensaver timeout to tmp file
echo "s $(xset q|grep timeout|awk '{print $2}') $(xset q|grep timeout|awk '{print $4}')" > $adjust_dpms
echo "dpms $(xset q|grep Standby|awk '{print $2}') $(xset q|grep Standby|awk '{print $4}') $(xset q|grep Standby|awk '{print $6}')" >> $adjust_dpms
# disable screensaver and dpms
xset s off
xset -dpms
else
xsetq=$(xset q|grep timeout|awk '{print $2}')
# if the timeout is still 0, set it to its former value, or just switch on screensaver/dpms again
if [[ $xsetq -eq 0 ]];then
if [[ -f "$adjust_dpms" ]];then
xset $(head -n1 $adjust_dpms)
xset $(tail -n1 $adjust_dpms)
rm -rf $adjust_dpms
else
xset +dpms
xset s on
fi
fi
fi
|