在XBMC中观看video时防止屏幕关闭

在12.04,屏幕在XBMC中观看video时从未进入睡眠状态。 但是在升级到12.10并且不更改任何设置之后,确实如此。

有什么办法可以防止屏幕在XBMC中播放video时自动关闭,而不会在其他时候禁用屏幕关闭?

理想情况下,是否有针对此的XBMC特定设置? 这是XBMC的一个function,现在在12.10中以某种方式被破坏或由于Ubuntu中的其他非XBMC更改而改变了吗?

这似乎是ubuntu的XBMC包中的一个错误

我不确定你安装的是哪个版本,但是PPA *的版本似乎没有在我的系统上安装。 这可能是因为我在ubuntu中有不同的设置,所以你的milleage可能会有所不同。

如果不这样做,您可以尝试使用XBMC作为会话(在登录屏幕上,按下您姓名旁边的ubuntu徽标并选择XBMC。您不会获得统一,而只是全屏XMBC)。 统一的设置不会存在,所以你可能没有屏幕保护程序。 (如果您有自动登录设置,则需要按logout才能获得登录屏幕)

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

我们可以创建一个shell脚本,它可以按指定的时间间隔模拟鼠标移动(仅当XBMC正在运行时)并阻止屏幕关闭。

按照步骤:

  1. 安装必要的工具:

    我们需要xdotool 安装xdotool 为我们做这份工作。 通过在终端中运行以下命令来安装它:

    sudo apt-get install xdotool 
  2. 剧本:

    将以下脚本保存在PC上的任何位置。 您可以根据需要修改sleep_period ,我将其设置为60秒。 该脚本检查是否有一个名为xbmc.bin的进程正在运行; 如果它找到一个,那么它会在进程处于活动状态时循环以模拟鼠标移动。 否则,在指定的时间间隔后再次检查进程。

     #!/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. 使此脚本可执行:

    右键单击刚刚保存的文件>>选择“ 属性 ”>>在“ 权限”选项卡中,将“检查标记”设置为“ 执行”

    使脚本可执行

  4. 每次启动时自动执行此脚本:

    我们可以在启动应用程序的帮助下完成此操作。 按Enter并查询Startup Applications >>在启动应用程序窗口中打开您的Dash,单击添加 >>然后,在弹出的对话框中,填写以下信息:

    名称:可选,无论您想为此命名。

    命令:保存文件的路径。

    评论:可选,如果你想添加一些。

    启动应用首选项

  5. 使用XBMC重新启动系统并欣赏电影。


如何与其他应用程序一起使用

这是XBMC(进程名称xbmc.bin )的示例。 但是,它也可以用于您选择的任何其他进程,只需将步骤2中提到的脚本中的xbmc.bin替换为您希望的进程名称即可。 在上面的脚本中找到以下行:

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

并使用您选择的进程名称替换第2行和第3行中的xbmc.bin


如何查找进程名称

  • 使用GUI(GNOME):

    我们可以使用System Monitor来查找进程的名称。 按Super打开Dash并查询“System Monitor”以启动它。 在“ 进程”选项卡中,我们可以找到“进程名称”作为第一列。

    系统监视器

  • 带终端:

    我们可以运行top来列出所有正在运行的进程。 名为Command的最后一列为我们提供了进程的名称(但它仅限于前15个字符)。

    终端<code/> top </ code>命令”></p>
</li>
</ul>
<p> 在这里我们可以看到Firefox只是命名为<code>firefox</code> 。 所以,如果我们在Firefox运行时想要这种行为; 我们将用<code>firefox</code>替换脚本中的<code>xbmc.bin</code> ,其他一切都可以正常工作。 </p>
<hr />
<p>  <strong>致谢:</strong>我在这里找到了脚本。 但是,我已做了必要的修改,使其紧凑并满足问题的要求。 </p>

</div><!-- #comment-## -->
<div class=

    一个非常简单的解决方案是咖啡因 。 咖啡因是一种’状态栏应用程序,能够暂时阻止屏幕保护程序和“睡眠”省电模式的激活。

    启用它就像单击状态栏指示器一样简单,但您也可以将其设置为启动xbmc时自动禁用屏幕保护程序。 请参见下面的屏幕截图

    在此处输入图像描述

    如果你正在使用Gnome,你可以安装caffeine gnome扩展 。 如果没有,对于Ubuntu高达15.04(生动),您可以从启动板ppa安装咖啡因:

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

    从15.10开始,你可以安装没有ppa

     sudo apt install caffeine 

    请享用!

我在〜/ 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 

当然你可以制作一个图标来运行这些,但我也不使用XBMC

每当xbmc运行时,这些解决方案都会关闭屏幕保护程序,而不仅仅是在播放video时。 由于它有一个内置的UPnP服务器,我让它全天候运行,但我只想在本地播放video时禁用屏幕保护程序。

这就是我想出的:在XBMC中打开http和JSON支持。 然后循环发出请求以确定玩家是否处于活动状态。 如果是,请发出xscreensaver-command -disable(您可以根据屏幕保护程序调整此值)。 如果没有,什么都不做。 每50秒检查一次对我来说很充实。

Python代码: http : //sumnerhayes.com/software/