Previene lo spegnimento dello schermo durante la visione di video in XBMC [chiuso]

8

In 12.04, lo schermo non si addormentava mai mentre guardava i video in XBMC. Tuttavia, dopo l'aggiornamento a 12.10 e la modifica delle impostazioni, lo fa.

C'è un modo per impedire che lo schermo si spenga automaticamente durante la riproduzione di un video in XBMC, senza in realtà disabilitare lo spegnimento dello schermo in altri momenti?

Idealmente, esiste una specifica impostazione XBMC per questo? Era una funzionalità di XBMC che ora è in qualche modo rotta in 12.10 o è cambiata a causa di qualche altra modifica non XBMC in Ubuntu?

    
posta thomasrutter 16.01.2013 - 23:20

5 risposte

7

Questo sembra essere un bug nel pacchetto XBMC per ubuntu

Non sono sicuro della versione installata, ma la versione dal PPA * non sembra averla sul mio sistema. Ciò può essere dovuto al fatto che in Ubuntu sono presenti impostazioni diverse, pertanto il tuo numero potrebbe variare.

Se non lo fai, puoi provare a utilizzare XBMC come sessione (nella schermata di accesso, premi il logo di Ubuntu accanto al tuo nome e seleziona XBMC. Non otterrai l'unità, ma solo XMBC a schermo intero). Le impostazioni per l'unità non saranno lì, quindi potresti avere la fortuna di non avere uno screensaver. (Se hai impostato il login automatico, devi premere il logout per ottenere la schermata di login)

* link

    
risposta data Nanne 23.01.2013 - 11:58
11

Possiamo creare uno script di shell che simula il movimento del mouse a intervalli specificati (solo quando XBMC è in esecuzione) e impedisce lo schermo di spegnersi.

Segui i passaggi:

  1. Installa gli strumenti necessari:

    Avremmo bisogno di xdotool fare questo lavoro per noi Installalo eseguendo il seguente comando nel terminale:

    sudo apt-get install xdotool
    
  2. Lo script:

    Salva il seguente script in qualsiasi punto del tuo PC. Puoi modificare sleep_period in base alle tue esigenze, l'ho impostato a 60 secondi. Lo script controlla se c'è un processo chiamato xbmc.bin in esecuzione; e se ne trova uno, quindi esegue il loop per simulare il movimento del mouse mentre il processo è attivo. Altrimenti, controlla di nuovo il processo dopo l'intervallo specificato.

    #!/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 }')
      mouse_y=$(xdotool getmouselocation 2>/dev/null |  sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print }')
    
    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. Rendi questo script eseguibile:

    Fai clic con il pulsante destro del mouse sul file che hai appena salvato & gt; & gt; Seleziona Proprietà & gt; & gt; Nella scheda Autorizzazione , metti il ​​segno di spunta su Esegui .

  4. Esegui questo script automaticamente ad ogni avvio:

    Possiamo farlo con l'aiuto di Startup Applications . Apri il tuo Dash premendo Invio e cerca Startup Applications & gt; & gt; Nella finestra Startup Applications, fai clic su Aggiungi & gt; & gt; Quindi, nella finestra di dialogo che si apre, inserisci le informazioni:

    Nome: opzionale, qualunque sia il nome che vuoi dare.

    Comando: percorso del file in cui è stato salvato.

    Commento: facoltativo, se desideri aggiungerne.

  5. Riavvia il sistema e goditi i tuoi film con XBMC.

Come usarlo con altre applicazioni

Questo era un esempio per XBMC (nome processo xbmc.bin ). Tuttavia, può anche essere utilizzato per qualsiasi altro processo di tua scelta semplicemente sostituendo xbmc.bin nello Script menzionato nel Passaggio 2 con il nome del processo che desideri. Trova le seguenti righe nello script precedente:

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

E sostituisci xbmc.bin in entrambe le linee 2 e 3 con il nome del processo di tua scelta.

Come trovare il nome del processo

  • Con GUI (GNOME):

    Possiamo usare System Monitor per trovare il nome del processo. Premi Super per aprire Dash e cerca "Monitor di sistema" per avviarlo. Nella scheda Processi , possiamo trovare il Nome processo come prima colonna.

  • Con terminale:

    Possiamo eseguire top per elencare tutti i processi in esecuzione. L'ultima colonna chiamata Command ci fornisce il nome del processo (tuttavia è limitato ai primi 15 caratteri).

Qui possiamo vedere che Firefox è appena chiamato firefox . Quindi, se vogliamo questo comportamento quando Firefox è in esecuzione; sostituiremmo xbmc.bin nello script con firefox e tutto il resto funzionerebbe perfettamente.

Riconoscimento: avevo trovato lo script qui . Tuttavia, ho apportato le modifiche necessarie per renderlo compatto e soddisfare le richieste della domanda.

    
risposta data Aditya 23.01.2013 - 11:09
8

Una soluzione molto semplice è caffeina . La caffeina è un'applicazione per la barra di stato in grado di impedire temporaneamente l'attivazione sia dello screensaver che della modalità di risparmio energetico di "sospensione".

Attivarlo è facile come fare clic sull'indicatore della barra di stato, ma puoi anche impostarlo in modo tale da disabilitare automaticamente lo screensaver all'avvio di xbmc. Vedi lo screenshot qui sotto

Se usi Gnome puoi installare l'estensione caffeine gnome . In caso contrario, per Ubuntu fino a 15.04 (vivido) è possibile installare la caffeina dal launchpad ppa:

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

dalla 15.10 in poi è possibile installare senza ppa

sudo apt install caffeine

Enjoy!

    
risposta data Gerhard Burger 27.01.2013 - 20:58
0

Li uso in ~ / 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

ovviamente puoi creare un'icona per eseguirle ma non uso XBMC neanche

    
risposta data jamon 29.01.2013 - 01:50
0

Queste soluzioni disattivano lo screensaver ogni volta che xbmc è in esecuzione, non solo quando riproduce video. Dato che ha un server UPnP integrato, lo lascio in esecuzione 24 ore su 24, ma voglio solo disabilitare lo screensaver quando un video viene riprodotto localmente.

Ecco cosa mi è venuto in mente: attiva il supporto http e JSON in XBMC. Quindi effettua una richiesta per scoprire se il giocatore è attivo o meno. In tal caso, emettere un comando xscreensaver -disable (è possibile regolarlo in base al proprio screensaver). In caso contrario, non fare nulla. Controllare ogni 50 secondi è abbastanza per me.

Codice Python qui: link

    
risposta data SumnerHayes 02.09.2014 - 02:23

Leggi altre domande sui tag