mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 03:39:55 +00:00
102 lines
4.3 KiB
Bash
Executable File
102 lines
4.3 KiB
Bash
Executable File
#/bin/bash
|
|
logfile=~/screensaver.log
|
|
mac=$(uname -s)
|
|
|
|
if [ $mac == 'Darwin' ]; then
|
|
setting=$(defaults -currentHost read com.apple.screensaver idleTime)
|
|
if [ $setting != 0 ] ; then
|
|
echo disable screensaver via mac profile >> $logfile
|
|
defaults -currentHost write com.apple.screensaver idleTime 0
|
|
else
|
|
echo mac profile screen saver already disabled >> $logfile
|
|
fi
|
|
else
|
|
# find out if some screen saver running
|
|
|
|
# get just the running processes and args
|
|
# just want the program name
|
|
# find the 1st with 'saver' in it (should only be one)
|
|
# if the process name is a path, parse it and get the last field ( the actual pgm name)
|
|
|
|
screen_saver_running=$(ps -A -o args | awk '{print $1}' | grep -m1 [s]aver | awk -F\/ '{print $NF}');
|
|
|
|
# if we found something
|
|
if [ "$screen_saver_running." != "." ]; then
|
|
# some screensaver running
|
|
case "$screen_saver_running" in
|
|
mate-screensaver) echo 'mate screen saver' >>$logfile
|
|
#killall mate-screensaver >/dev/null 2>&1
|
|
#ms=$(which mate-screensaver-command)
|
|
#$ms -d >/dev/null 2>&1
|
|
gsettings set org.mate.screensaver lock-enabled false 2>/dev/null
|
|
gsettings set org.mate.screensaver idle-activation-enabled false 2>/dev/null
|
|
gsettings set org.mate.screensaver lock_delay 0 2>/dev/null
|
|
echo " $screen_saver_running disabled" >> $logfile
|
|
DISPLAY=:0 mate-screensaver >/dev/null 2>&1 &
|
|
;;
|
|
gnome-screensaver) echo 'gnome screen saver' >>$logfile
|
|
gnome_screensaver-command -d >/dev/null 2>&1
|
|
echo " $screen_saver_running disabled" >> $logfile
|
|
;;
|
|
xscreensaver) echo 'xscreensaver running' | tee -a $logfile
|
|
if [ $(grep -m1 'mode:' ~/.xscreensaver | awk '{print $2}') != 'off' ]; then
|
|
sed -i 's/$xsetting/mode: off/' ~/.xscreensaver
|
|
echo " xscreensaver set to off" >> $logfile
|
|
else
|
|
echo " xscreensaver already disabled" >> $logfile
|
|
fi
|
|
;;
|
|
gsd-screensaver | gsd-screensaver-proxy)
|
|
setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled)
|
|
setting1=$(gsettings get org.gnome.desktop.session idle-delay)
|
|
if [ "$setting $setting1" != 'false uint32 0' ]; then
|
|
echo disable screensaver via gsettings was $setting and $setting1>> $logfile
|
|
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
|
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
|
|
gsettings set org.gnome.desktop.session idle-delay 0
|
|
else
|
|
echo gsettings screen saver already disabled >> $logfile
|
|
fi
|
|
;;
|
|
*) echo "some other screensaver $screen_saver_running" found | tee -a $logfile
|
|
echo "please configure it manually" | tee -a $logfile
|
|
;;
|
|
esac
|
|
elif [ -e "/etc/lightdm/lightdm.conf" ]; then
|
|
# if screen saver NOT already disabled?
|
|
if [ $(grep 'xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf | wc -l) == 0 ]; then
|
|
echo install screensaver via lightdm.conf >> $logfile
|
|
sudo sed -i '/^\[Seat:\*\]/a xserver-command=X -s 0 -dpms' /etc/lightdm/lightdm.conf
|
|
#sudo cp _myconf /etc/lightdm/lightdm.conf
|
|
#rm _myconf >/dev/null
|
|
else
|
|
echo screensaver via lightdm already disabled >> $logfile
|
|
fi
|
|
elif [ $(which gsettings | wc -l) == 1 ]; then
|
|
setting=$(gsettings get org.gnome.desktop.screensaver lock-enabled)
|
|
setting1=$(gsettings get org.gnome.desktop.session idle-delay)
|
|
if [ "$setting $setting1" != 'false uint32 0' ]; then
|
|
echo disable screensaver via gsettings was $setting and $setting1>> $logfile
|
|
gsettings set org.gnome.desktop.screensaver lock-enabled false
|
|
gsettings set org.gnome.desktop.screensaver idle-activation-enabled false
|
|
gsettings set org.gnome.desktop.session idle-delay 0
|
|
else
|
|
echo gsettings screen saver already disabled >> $logfile
|
|
fi
|
|
elif [ -d "/etc/xdg/lxsession" ]; then
|
|
currently_set=$(grep -m1 '\-dpms' /etc/xdg/lxsession/LXDE-pi/autostart)
|
|
if [ "$currently_set." == "." ]; then
|
|
echo disable screensaver via lxsession >> $logfile
|
|
# turn it off for the future
|
|
sudo su -c "echo -e '@xset s noblank\n@xset s off\n@xset -dpms' >> /etc/xdg/lxsession/LXDE-pi/autostart"
|
|
# turn it off now
|
|
export DISPLAY=:0; xset s noblank;xset s off;xset -dpms
|
|
else
|
|
echo lxsession screen saver already disabled >> $logfile
|
|
fi
|
|
else
|
|
echo " "
|
|
echo -e "unable to disable screen saver, /etc/xdg/lxsession does not exist" | tee >>$logfile
|
|
fi
|
|
fi
|