Evitar que a tela seja desligada ao assistir vídeo no XBMC [fechado]

8

Na versão 12.04, a tela nunca dormia enquanto assistia a vídeos no XBMC. No entanto, depois de atualizar para 12.10 e alterar as configurações, ele faz.

Existe alguma maneira de impedir que a tela desligue automaticamente enquanto reproduz um vídeo no XBMC, sem realmente desativar a tela em outras ocasiões?

Idealmente, existe uma configuração específica do XBMC para isso? Esse foi um recurso do XBMC que agora está quebrado de alguma forma na versão 12.10 ou foi alterado devido a outras alterações não-XBMC no Ubuntu?

thomasrutter
fonte
1
Deve haver uma configuração no XBMC em Economia de energia> Desligar no modo inativo ou algo nesse sentido. Você já tentou isso?
Ye Lin Aung
O problema está acontecendo enquanto assiste a um filme, que não está ocioso. Eu não me importo (e realmente gosto) de desligar a tela enquanto ocioso.
precisa saber é o seguinte
Quais versões você está usando? Você tem configurações especiais de energia no ubuntu? Estou executando uma nova instalação 12.10 com o XBMC (normal, não instável) do PPA, e não sou afetado por isso, portanto não parece ser uma coisa padrão // não afeta todas as pessoas . (sim, eu sei, isso não ajuda muito, mas ainda assim ele pode ajudar a saber que não é sempre presente bug .. Eu não sei :))
Nanne
Estou usando a versão do Ubuntu (12.10, atualizada recentemente a partir do 12.04), não de um PPA. Sem configurações especiais de energia, apenas o padrão que desliga o monitor após um período de inatividade.
precisa saber é o seguinte
Obrigado pelo esforço que você dedicou a essa resposta Aditya, mas acho que prefiro tentar as duas alternativas propostas pela resposta de Nanne primeiro.
precisa saber é o seguinte

Respostas:

7

Este parece ser um bug no pacote XBMC para ubuntu

Não tenho certeza de qual versão você instalou, mas a versão do PPA * não parece ter no meu sistema. Isso pode ser porque eu tenho configurações diferentes no ubuntu, é claro, então sua milhagem pode variar.

Caso contrário, tente usar o XBMC como uma sessão (na tela de login, pressione o logotipo do ubuntu ao lado do seu nome e selecione XBMC. Você não terá unidade, mas apenas o XMBC em tela cheia). As configurações de unidade não estarão lá, então você pode ter sorte em não ter um protetor de tela. (Se você tiver definido o login automático, precisará pressionar logout para obter a tela de login)

* https://launchpad.net/~team-xbmc/+archive/ppa

Nanne
fonte
Obrigado pelo link do bug, que parece o motivo do meu problema, pois estou usando o pacote xbmc do Ubuntu. Vou tentar usar o XBMC como uma sessão quando estiver em casa e ver se isso corrige.
precisa saber é o seguinte
11

Podemos criar um script de shell que simule o movimento do mouse em um intervalo especificado (somente quando o XBMC estiver em execução) e evite que a tela desligue.

Siga os passos:

  1. Instale as ferramentas necessárias:

    Nós precisaríamos do xdotoolInstale o xdotool para fazer esse trabalho por nós. Instale-o executando o seguinte comando no terminal:

    sudo apt-get install xdotool
    
  2. O Script:

    Salve o seguinte script em qualquer lugar do seu PC. Você pode modificar de sleep_periodacordo com suas necessidades, eu o configurei em 60 segundos. O script verifica se existe um processo chamado em xbmc.binexecução; e se encontrar um, ele executa um loop para simular o movimento do mouse enquanto o processo está ativo. Caso contrário, verifica o processo novamente após o intervalo especificado.

    #!/usr/bin/env bash
    
    sleep_period=60s #seconds
    
    mouse_x=0
    mouse_y=0
    
    movement_px=2
      mouse_x=$(xdotool getmouselocation 2>/dev/null |  sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
      mouse_y=$(xdotool getmouselocation 2>/dev/null |  sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
    
    while true; do
      if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
        while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do
          xdotool mousemove $((mouse_x+${movement_px})) $((mouse_y+${movement_px}))
          xdotool mousemove $((mouse_x-${movement_px})) $((mouse_y-${movement_px}))
          sleep ${sleep_period}
        done
      else
        sleep ${sleep_period}
      fi
    done
    
  3. Torne este script executável:

    Clique com o botão direito do mouse no arquivo que você acabou de salvar >> Selecionar Properties>> Na Permissionguia, coloque a marca de seleção Execute.

    torne o script executável

  4. Execute este script automaticamente em toda inicialização:

    Podemos fazer isso com a ajuda de aplicativos de inicialização . Abra o seu Dash pressionando Entere consulte Startup Applications>> Na janela Aplicativos de inicialização, clique em Add>> Em seguida, na caixa de diálogo exibida, preencha as informações:

    Nome: opcional, o que você quiser nomear.

    Comando: caminho para o arquivo onde você o salvou.

    Comentário: opcional, se você deseja adicionar alguns.

    preferências de aplicativos de inicialização

  5. Reinicie seu sistema e curta seus filmes com o XBMC.


Como usá-lo com outros aplicativos

Este foi um exemplo para XBMC (nome do processo xbmc.bin). No entanto, também pode ser usado para qualquer outro processo de sua escolha, substituindo apenas xbmc.bino Script mencionado na Etapa 2 pelo nome do processo que você deseja. Encontre as seguintes linhas no script acima:

while true; do
  if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
    while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do

E substitua xbmc.binnas linhas 2 e 3 pelo nome do processo de sua escolha.


Como encontrar o nome do processo

  • Com GUI (GNOME):

    Podemos usar System Monitorpara encontrar o nome do processo. Pressione Superpara abrir o Dash e consulte "System Monitor" para iniciá-lo. Na Processesguia, podemos encontrar o nome do processo como a primeira coluna.

    Monitor do sistema

  • Com terminal:

    Podemos correr toppara listar todos os processos em execução. A última coluna chamada Commandfornece o nome do processo (no entanto, é limitado aos 15 primeiros caracteres).

    Comando terminal <code> top </code>

Aqui podemos ver que o Firefox é apenas nomeado como firefox. Portanto, se queremos esse comportamento quando o Firefox está sendo executado; substituiríamos xbmc.binno script por firefoxe tudo funcionaria bem.


Agradecimento: Encontrei o script aqui . No entanto, fiz as modificações necessárias para torná-lo compacto e satisfazer as demandas da pergunta.

Aditya
fonte
Isso não seria um último, último, final, nada mais funciona?
Nanne
1
@Nanne: Não ... Por que isso seria assim; o shell script não monopoliza os recursos do sistema; e não simularia o movimento do mouse quando o XMBC não estiver em execução; assim como você não precisará se lembrar de executar esse script todas as vezes ... Embora uma configuração de preferência no XMBC seja obviamente a melhor solução; como não uso o XMBC - não sei se essa configuração existe. Testei esse script do Shell com o Firefox e funciona conforme o esperado pelo OP.
Aditya
O problema é que o sistema não deve dormir durante a reprodução de vídeo (e para mim não). Esta é claramente uma solução alternativa (você pode chamar de hack mesmo) e eu não estou dizendo que é ruim, adereços para você para este ótimo post, mas ainda assim eu procuraria uma solução real (como você diz, você não deve conheça o XBMC, portanto pode haver um real) antes de tentar isso. Novamente, nada de ruim em sua postagem real, mas você não concorda que fazer o mouse se mover é algo que você deve tentar depois que as configurações "normais" falham?
Nanne
1
@Nanne Como eu disse, uma configuração de preferência no XMBC para controlá-la seria obviamente a melhor solução. No entanto, é prudente esperar que o OP tenha feito sua lição de casa. Além disso, se essa configuração estivesse disponível no XMBC, acho que alguém teria aparecido e postado sua resposta. A questão é de 7 dias a partir de agora - eu não acho que está lá no XMBC. De qualquer forma, como você usa XMBC, você pode por favor, verifique se ele pode ser feito :)
Aditya
3
Eu não chamaria isso de hack. As pessoas usam scripts de shell para fazer essas coisas o tempo todo. Resposta impressionante +1.
Seth
8

Uma solução muito simples é a cafeína . A cafeína é um 'aplicativo da barra de status capaz de impedir temporariamente a ativação do protetor de tela e do modo de economia de energia "dormir".'

A ativação é tão fácil quanto clicar no indicador da barra de status, mas você também pode configurá-lo para desativar automaticamente o protetor de tela ao iniciar o xbmc. Veja a imagem abaixo

insira a descrição da imagem aqui

Se você estiver usando o Gnome, poderá instalar a extensão cafeína gnome . Caso contrário, para o Ubuntu até 15.04 (vívido), você pode instalar cafeína a partir da barra de ativação ppa:

sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine

a partir das 15.10 você pode instalar sem o ppa

sudo apt install caffeine

Aproveitar!

Gerhard Burger
fonte
Parece uma boa ferramenta.
precisa saber é o seguinte
@ PeterMortensen Funciona, mesmo em 16.04, que a resposta está desatualizada. Obrigado pelo aviso, porque minha resposta também poderia usar uma atualização;) Adicionei as instruções de instalação para as versões mais recentes do Ubuntu.
Gerhard Burger
0

Eu os uso em ~ / bin /:

#!/bin/bash

# ssoff - disable screensaver and power mgmt
pkill xscreensaver
xset s 0
xset -dpms

#!/bin/bash

# sson - activate screen and power mgmt
xscreensaver > /dev/null 2>&1 &
xset s 100
xset +dpms

é claro que você pode criar um ícone para executá-los, mas eu também não uso o XBMC

jamon
fonte
Estou usando o Gnome, então não acho que esteja usando o xscreensaver. Obrigado pela sua resposta.
precisa saber é o seguinte
0

Todas essas soluções desativam o protetor de tela sempre que o xbmc está em execução, e não apenas ao reproduzir vídeos. Como ele possui um servidor UPnP embutido, deixo-o funcionando 24 horas por dia, 7 dias por semana, mas eu quero apenas desativar o protetor de tela quando um vídeo estiver sendo reproduzido localmente.

Aqui está o que eu criei: ative o suporte a http e JSON no XBMC. Depois, faça um pedido para descobrir se o jogador está ativo ou não. Se estiver, emita um comando xscreensaver -disable (você pode ajustar isso de acordo com o seu protetor de tela). Caso contrário, não faça nada. Verificar a cada 50 segundos é suficiente para mim.

Código Python aqui: http://sumnerhayes.com/software/

SumnerHayes
fonte
Esta pergunta era sobre o XBMC no Ubuntu 12.10, que apresentava um erro em que não desabilitava o protetor de tela durante a reprodução de um vídeo. Esse bug não existe no XBMC em versões mais atualizadas do Ubuntu, então não acho que sua solução alternativa seja necessária. O XBMC desativa o protetor de tela enquanto reproduz o vídeo, como deveria.
thomasrutter