![在 KDE 中观看 iPlayer 时禁用屏幕黑屏](https://linux22.com/image/44700/%E5%9C%A8%20KDE%20%E4%B8%AD%E8%A7%82%E7%9C%8B%20iPlayer%20%E6%97%B6%E7%A6%81%E7%94%A8%E5%B1%8F%E5%B9%95%E9%BB%91%E5%B1%8F.png)
在 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 网站,如果是,请关闭屏幕消隐。它远非完美,但我希望有人可以改进它并提出建议!