Cegah layar mati saat menonton video di XBMC [ditutup]

8

Dalam 12,04, layar tidak pernah tidur saat menonton video di XBMC. Namun setelah meningkatkan ke 12.10 dan mengubah pengaturan tidak, itu tidak.

Apakah ada cara saya dapat mencegah layar mati secara otomatis saat memutar video di XBMC, tanpa benar-benar menonaktifkan layar mematikan di lain waktu?

Idealnya, apakah ada pengaturan khusus XBMC untuk ini? Apakah ini fitur XBMC yang sekarang entah bagaimana rusak di 12.10 atau sudahkah ini berubah karena beberapa perubahan non-XBMC lainnya di Ubuntu?

thomasrutter
sumber
1
Seharusnya ada pengaturan di XBMC di bawah Penghematan Daya> Matikan idle atau sesuatu seperti itu. Sudahkah Anda mencobanya?
Ye Lin Aung
Masalahnya terjadi saat menonton film, yang tidak menganggur. Saya tidak keberatan (dan sebenarnya suka) itu mematikan layar saat idle.
thomasrutter
Versi apa yang Anda gunakan? Apakah Anda memiliki pengaturan daya khusus di ubuntu? Saya menjalankan instalasi 12.10 baru dengan XBMC (normal, bukan tidak stabil) dari PPA, dan saya tidak terpengaruh oleh ini, jadi sepertinya itu bukan hal yang baku // tidak mempengaruhi semua orang . (Ya, saya tahu, itu tidak banyak membantu Anda, tetapi mungkin masih membantu untuk mengetahui bahwa itu bukan bug yang selalu ada .. Saya tidak tahu :))
Nanne
Saya menggunakan versi dari Ubuntu (12.10, baru-baru ini ditingkatkan dari 12.04), bukan dari PPA. Tidak ada pengaturan daya khusus, hanya default yang mematikan monitor setelah periode tidak aktif.
thomasrutter
Terima kasih atas upaya yang Anda berikan pada jawaban Aditya itu, tetapi saya pikir saya lebih baik mencoba dua alternatif yang diusulkan oleh jawaban Nanne terlebih dahulu.
thomasrutter

Jawaban:

7

Ini sepertinya merupakan bug dalam paket XBMC untuk ubuntu

Saya tidak yakin versi apa yang telah Anda instal, tetapi versi dari PPA * tampaknya tidak memilikinya di sistem saya. Ini bisa jadi karena saya memiliki pengaturan yang berbeda di ubuntu tentu saja, jadi milleage Anda dapat bervariasi.

Jika tidak, Anda dapat mencoba menggunakan XBMC sebagai sesi (pada layar login Anda, tekan logo ubuntu di sebelah nama Anda dan pilih XBMC. Anda tidak akan mendapatkan persatuan, tetapi hanya XMBC layar penuh). Pengaturan untuk unity tidak akan ada di sana, jadi Anda mungkin beruntung karena tidak memiliki screensaver. (Jika Anda memiliki set login otomatis, Anda harus menekan logout untuk mendapatkan layar login)

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

Nanne
sumber
Terima kasih atas tautan bugnya, yang sepertinya menjadi alasan untuk masalah saya karena saya menggunakan paket xbmc dari Ubuntu. Saya akan mencoba menggunakan XBMC sebagai sesi ketika saya di rumah dan melihat apakah itu memperbaikinya.
thomasrutter
11

Kami dapat membuat skrip shell yang akan mensimulasikan pergerakan mouse pada interval yang ditentukan (hanya ketika XBMC sedang berjalan) dan mencegah layar Anda dimatikan.

Ikuti langkah-langkahnya:

  1. Instal alat yang diperlukan:

    Kita perlu xdotoolInstal xdotool untuk melakukan pekerjaan ini untuk kita. Instal dengan menjalankan perintah berikut di terminal:

    sudo apt-get install xdotool
    
  2. Naskah:

    Simpan skrip berikut di mana saja di PC Anda. Anda dapat memodifikasi sleep_periodsesuai dengan kebutuhan Anda, saya telah menetapkannya pada 60 detik. Script memeriksa apakah ada proses yang disebut xbmc.binrunning; dan jika menemukan satu, maka loop untuk mensimulasikan gerakan mouse saat proses sedang aktif. Jika tidak, periksa kembali proses setelah interval yang ditentukan.

    #!/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. Jadikan skrip ini dapat dieksekusi:

    Klik kanan pada file yang baru saja Anda simpan >> Pilih Properties>> Di Permissiontab, tandai tanda centang Execute.

    membuat skrip dapat dieksekusi

  4. Jalankan skrip ini secara otomatis pada setiap startup:

    Kita dapat melakukan ini dengan bantuan Aplikasi Startup . Buka Dash Anda dengan menekan Enterdan meminta Startup Applications>> Di Startup Applications Window, klik Add>> Kemudian, dalam dialog yang muncul, isikan informasinya:

    Nama: opsional, apa pun yang Anda ingin beri nama ini.

    Command: path ke file tempat Anda menyimpannya.

    Komentar: opsional, jika Anda ingin menambahkan beberapa.

    preferensi aplikasi startup

  5. Mulai ulang sistem Anda dan nikmati film Anda dengan XBMC.


Cara menggunakannya dengan Aplikasi lain

Ini adalah contoh untuk XBMC (Nama proses xbmc.bin). Namun, ini juga dapat digunakan untuk proses lain pilihan Anda dengan hanya mengganti xbmc.bindalam Script yang disebutkan dalam Langkah-2 dengan nama proses yang Anda inginkan. Temukan baris berikut dalam skrip di atas:

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

Dan ganti xbmc.bindi kedua baris 2 dan 3 dengan nama proses pilihan Anda.


Cara menemukan nama proses

  • Dengan GUI (GNOME):

    Kita dapat menggunakan System Monitoruntuk menemukan nama proses. Tekan Superuntuk membuka Dash dan minta "System Monitor" untuk meluncurkannya. Di ProcessesTab, kita bisa menemukan Nama Proses sebagai kolom pertama.

    Monitor Sistem

  • Dengan Terminal:

    Kita dapat menjalankan topdaftar semua proses yang berjalan. Kolom terakhir disebut Commandmemberi kita nama Proses (namun terbatas pada 15 karakter pertama).

    Perintah terminal <code> atas </code>

Di sini kita dapat melihat bahwa Firefox baru saja dinamai firefox. Jadi, jika kita menginginkan perilaku ini ketika Firefox sedang berjalan; kami akan mengganti xbmc.bindengan script firefoxdan yang lainnya akan berfungsi dengan baik.


Pengakuan: Saya telah menemukan skrip di sini . Namun, saya telah melakukan modifikasi yang diperlukan untuk membuatnya kompak dan memenuhi tuntutan pertanyaan.

Aditya
sumber
Bukankah itu akan menjadi resor pekerjaan terakhir, terakhir, terakhir, tidak ada yang lain?
Nanne
1
@Nanne: Tidak ... Kenapa begitu; skrip shell tidak akan memonopoli sumber daya sistem Anda; dan itu tidak akan mensimulasikan gerakan mouse ketika XMBC tidak berjalan; dan Anda tidak harus ingat untuk menjalankan skrip ini setiap saat ... Meskipun pengaturan Preferensi di XMBC jelas akan menjadi solusi terbaik; karena saya tidak menggunakan XMBC - Saya tidak tahu apakah pengaturan seperti itu ada. Saya telah menguji skrip Shell ini dengan Firefox dan berfungsi seperti yang diharapkan oleh OP.
Aditya
Masalahnya adalah bahwa sistem seharusnya tidak tidur ketika memutar video (dan bagi saya tidak). Ini jelas merupakan solusi (Anda mungkin menyebutnya hack even) dan saya tidak mengatakan itu buruk, alat bantu untuk Anda untuk pos yang hebat ini, tapi tetap saya pertama-tama akan mencari solusi nyata (seperti yang Anda katakan, Anda tidak tahu tentang XBMC, jadi mungkin ada yang sebenarnya) sebelum Anda mencoba ini. Sekali lagi, tidak ada hal buruk tentang posting Anda yang sebenarnya, tetapi tidakkah Anda setuju bahwa membuat gerakan mouse adalah sesuatu yang harus Anda coba setelah pengaturan "normal" gagal?
Nanne
1
@Nanne Seperti yang saya katakan, Pengaturan Preferensi dalam XMBC untuk mengendalikannya jelas akan menjadi solusi terbaik. Namun, lebih bijaksana bagi saya untuk mengharapkan bahwa OP telah melakukan pekerjaan rumahnya. Selain itu, jika pengaturan seperti itu tersedia dalam XMBC, saya pikir seseorang akan datang dan memposting jawabannya. Pertanyaannya adalah 7 hari seperti sekarang - saya tidak berpikir itu ada di XMBC. Ngomong-ngomong, saat Anda menggunakan XMBC, dapatkah Anda memeriksa apakah itu dapat dilakukan :)
Aditya
3
Saya tidak akan menyebut ini hack. Orang-orang menggunakan skrip shell untuk melakukan hal-hal ini setiap saat. Jawaban mengagumkan +1.
Seth
8

Solusi yang sangat sederhana adalah kafein . Caffeine adalah aplikasi 'status bar yang dapat untuk sementara waktu mencegah aktivasi screensaver dan mode hemat daya "tidur".'

Mengaktifkannya semudah mengklik indikator bilah status, tetapi Anda juga dapat mengaturnya sehingga secara otomatis menonaktifkan screensaver saat Anda memulai xbmc. Lihat tangkapan layar di bawah ini

masukkan deskripsi gambar di sini

Jika Anda menggunakan Gnome, Anda dapat menginstal ekstensi gnome kafein . Jika tidak, untuk Ubuntu hingga 15,04 (jelas) Anda dapat menginstal kafein dari launchpad ppa:

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

mulai 15.10 dan seterusnya Anda dapat menginstal tanpa ppa

sudo apt install caffeine

Nikmati!

Gerhard Burger
sumber
Ini terlihat seperti alat yang bagus.
thomasrutter
@PeterMortensen Tidak berfungsi, bahkan pada 16.04, jawaban itu sudah usang. Terima kasih atas kepala-kepala, karena jawaban saya dapat menggunakan pembaruan juga;) Saya menambahkan instruksi instalasi untuk versi Ubuntu yang lebih baru.
Gerhard Burger
0

Saya menggunakan ini di ~ / 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

tentu saja Anda dapat membuat ikon untuk menjalankan ini tetapi saya juga tidak menggunakan XBMC

jamon
sumber
Saya menggunakan Gnome jadi saya tidak berpikir saya menggunakan xscreensaver. Terima kasih atas jawaban anda.
thomasrutter
0

Semua solusi ini mematikan screensaver kapan pun xbmc berjalan, tidak hanya saat memutar video. Karena memiliki server UPnP bawaan, saya membiarkannya berjalan 24/7 tetapi saya hanya ingin menonaktifkan screensaver ketika video diputar secara lokal.

Inilah yang saya buat: nyalakan dukungan http dan JSON di XBMC. Kemudian loop membuat permintaan untuk mengetahui apakah pemain aktif atau tidak. Jika ya, keluarkan xcreensaver-command -disable (Anda dapat menyesuaikan ini sesuai screensaver Anda). Jika tidak, jangan lakukan apa pun. Memeriksa setiap 50 detik cukup untuk saya.

Kode python di sini: http://sumnerhayes.com/software/

SumnerHayes
sumber
Pertanyaan ini adalah tentang XBMC di Ubuntu 12.10 yang memiliki bug di mana ia tidak menonaktifkan screensaver saat memutar video. Bug ini tidak ada di XBMC di versi Ubuntu yang lebih baru, jadi saya tidak berpikir solusi Anda diperlukan. XBMC menonaktifkan screensaver saat memutar video, sebagaimana mestinya.
thomasrutter