在 KDE 中观看 iPlayer 时禁用屏幕黑屏

在 KDE 中观看 iPlayer 时禁用屏幕黑屏

在 BBC iPlayer 中播放电影时如何关闭 Linux 中的屏幕黑屏?我通常在 Chrome 中使用它,但如果有一种方法可以在 Firefox (Iceweasel) 中使用它,那么它也足够好了。

我认为默认情况下 iPlayer 使用 Flash,但如果有一种方法可以切换到 HTML 5 来完成这项工作,那么我也可以这样做。

我知道如何完全关闭它,但显然我希望它在所有其他情况下都能节省能源。

答案1

我无法添加评论,但为了完全关闭屏幕消隐,我通常使用这个

xset -dpms &
xset s noblank &
xset s off &

我不是 sqlite 文件方面的专家,但您也许可以使用类似的命令

  sqlite3 ./.mozilla/firefox/*default/places.sqlite "select a.url from moz_places a;" | grep bbc.co.uk/iplayer

并尝试获取时间戳来检查以触发关闭屏幕消隐。希望这会有一些用处!

编辑

我深入研究了一下并得出了这个 python 脚本

import subprocess


def get_last_visit():

    shell_cmd = ('sqlite3 ~/.mozilla/firefox/*default/places.sqlite '
                 '"select b.visit_date, a.url from moz_places a, '
                 'moz_historyvisits b where a.url like '
                 '\'%www.bbc.co.uk/iplay%\';"')

    proc = subprocess.check_output(shell_cmd, shell=True)

    dates = [x[:10] for x in proc.split()]

    return int(max(dates))


def get_curren_date():

    current_date = subprocess.Popen(['date', '+%s'],
                                    stdout=subprocess.PIPE)[0][:10]

    return int(current_date)


def main():

    last_visit = get_last_visit()
    current_date = get_curren_date()

    if current_date - last_visit < 300:
        subprocess.call(['xset', '-dpms'])
        subprocess.call(['xset', 's', 'noblank'])
        subprocess.call(['xset', 's', 'off'])

if __name__ == '__main__':

    main()

我还没有测试过它,但你可以尝试将它添加到你的 crond 中,每 5 分钟执行一次,应该检查你在过去五分钟内是否访问过 bbc/iplay 网站,如果是,请关闭屏幕消隐。它远非完美,但我希望有人可以改进它并提出建议!

相关内容