Diga ao mplayer para evitar que o protetor de tela chute durante a reprodução

1

Eu sei que o mplayer tem alguns batimentos cardíacos, mas não me lembro o que é, alguém poderia me dizer?

outra daquelas coisas chatas que costumavam funcionar e em algum lugar ao longo da linha deixou de ser padrão

    
por xenoterracide 28.08.2010 / 16:01

3 respostas

4

mplayer tem a opção -heartbeat-cmd para executar um comando a cada 30 segundos, mas como a página man diz:

This can be "misused" to disable screensavers that do not support the proper X API

O interruptor real destinado a desativar as proteções de tela é -stop-xscreensaver ; você provavelmente deveria tentar isso primeiro

    
por 28.08.2010 / 17:18
0

Para mim, é --stop-screensaver

Ao usar --stop-xscreensaver, o mplayer me avisa: opção --stop-xscreensaver foi substituída por --stop-screensaver e pode ser removida no futuro.

Debian & mpv 0.23.0 (C) 2000-2016 mpv / projetos MPlayer / mplayer2

    
por 24.02.2018 / 20:56
0

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

    
por 23.07.2014 / 19:38