mplayer -stop-xscreensaver
não funciona para mim (Debian ofegante; xscreensaver = 5,15-3, xfce4 = 4.8.0.3, mplayer = 2: 1,0 ~ rc4.dfsg1 + svn34540-1 + b2) - o screensaver ainda acende durante o filme. Escrevi uma ferramenta de inibição de proteção de tela xscreensaver-inhibit
e um wrapper mplayer play
. xscreensaver-inhibit
é útil para outras coisas como o youtube, então eu coloquei um atalho no meu painel para ele.
$HOME/bin/xscreensaver-inhibit
é o seguinte:
#!/bin/bash
usage () {
echo "usage: $0 [on|off]"
echo ' Turns screensaver inhibition on or off.'
echo ' default: toggle on/off'
exit 1;
}
if [ -n "$1" ] ; then
[ "$1" = "on" -o "$1" = "off" ] || usage
fi
inhibit () {
while [ -f "$lock" ] ; do
# echo "$lock exists"
# UPDATE Dec 2018 this command seems to have stopped working after upgrading to Debian Stretch.
# DISPLAY=:0 xdg-screensaver reset
# Replaced with this command which is working for me,
# though if you do not use xscreensaver you might need something else.
DISPLAY=:0 xscreensaver-command -deactivate
sleep 50
done
# echo "$lock is gone"
}
lock="/tmp/xsi.lock"
if [ -e "$lock" ] ; then
echo 'Screensaver currently inhibited.'
on='on'
else
echo 'Screensaver operating normally.'
on=''
fi
if [ "$1" = "on" ] ; then
if [ -n "$on" ] ; then
echo 'Starting screensaver inhibitor anyway.'
else
echo 'Screensaver inhibitor started.'
fi
touch "$lock" && inhibit &
fi
if [ "$1" = "off" ] ; then
if [ -n "$on" ] ; then
echo 'Screensaver inhibitor(s) stopped.'
else
echo 'Perhaps the screensaver daemon is not running or another program is inhibiting it.'
fi
rm -f "$lock"
fi
if [ ! -n "$1" ] ; then
if [ -n "$on" ] ; then
echo 'Screensaver inhibitor(s) stopped.'
rm -f "$lock"
else
echo 'Screensaver inhibitor started.'
touch "$lock" && inhibit &
fi
fi
$HOME/bin/play
é o seguinte:
#!/bin/sh
xscreensaver-inhibit on
DISPLAY=:0 mplayer -fs "$@"
xscreensaver-inhibit off
Eu incluí DISPLAY=:0
para que o filme seja reproduzido na exibição ativa local mesmo quando eu estiver conectado ao SSH. play
também é o manipulador padrão de todos os arquivos de filme no meu gerenciador de arquivos.
Observe que sox
fornece /usr/bin/play
, por isso, se você tiver sox
instalado, convém chamar play
outra coisa.
Você pode escrever wrappers semelhantes para seus outros aplicativos de tela inteira que não deseja que a proteção de tela seja interrompida.
xscreensaver-inhibit
funciona em todos os DEs, Linuxes e protetores de tela nos quais eu tentei. Caso você receba xdg-screensaver: command not found
, execute apt-get install xdg-utils
.
UPDATE Dec 2018 mudou o comando principal em xscreensaver-inhibit
de xdg-screensaver
para xscreensaver-command
- NÃO testado em todos os DEs, Linuxes, screensavers. YMMV