如何根据活动让计算机保持清醒状态?
我希望能够在某些活动和更长时间运行的任务中保持计算机处于唤醒状态,例如下载较大的文件和观看全屏video。
我喜欢使用咖啡因来防止显示器睡眠,从而防止电脑进入睡眠状态。 这在我的Mac上很适合我,但这在Ubuntu中不起作用。
我怎样才能做到这一点?
我不确定咖啡因为什么不让你的电脑保持清醒。 我怀疑这是因为Ubuntu上的空闲时间相当于通过键盘或鼠标检测不到用户活动的时间 。
如何防止电脑入睡
如果您正在寻找一种解决方案,让您的计算机保持清醒,就像咖啡因一样(应该这样做),下面的解决方案应该可行; 我在14.04测试了它。 它存在两个小脚本,您应该将它们存储在同一个文件夹中。 您可以使用组合键切换或打开(切换)。 按下它后,它将在消息中显示当前状态:
要么:
它基本上存在一个小的后台脚本,如果空闲时间超过规定的时间,则模拟次要用户操作(按下Ctrl ),从而防止计算机进入睡眠状态或使屏幕空白。 按键本身毫无意义,对全屏播放video没有影响。
如何使用
-
您需要安装
xprintidle
和xdotool
:sudo apt-get install xprintidle xdotool
(默认情况下,应该在Ubuntu上安装
inotify-tools
,可能不是Xu或Lubuntu的情况) -
下面的脚本是打开/关闭,将其复制到一个空文件,保存为
insomnia.py
(保持名称不变!)并使其可执行(!)
#!/usr/bin/env python3 import os import subprocess script_dir = os.path.dirname(os.path.abspath(__file__)) try: pid = subprocess.check_output(["pgrep", "-f", "caf.py"]).decode("utf-8").strip() subprocess.Popen(["kill", pid]) subprocess.Popen(["notify-send", "Computer doesn't stay awake..."]) except: subprocess.Popen(["/bin/bash", "-c", script_dir+"/"+"caf.py"]) subprocess.Popen(["notify-send", "Computer stays awake..."])
- 下面的(主)脚本是让计算机保持唤醒状态,将脚本复制到一个空文件中,保存为
caf.py
(保持名称不变!)并使其可执行(!)
#!/usr/bin/env python3 import subprocess import time seconds = 120 # number of seconds to start preventing blank screen / suspend while True: curr_idle = subprocess.check_output(["xprintidle"]).decode("utf-8").strip() if int(curr_idle) > seconds*1000: subprocess.call(["xdotool", "key", "Control_L"]) time.sleep(10)
将两个脚本保存在同一个文件夹中非常重要!
-
现在添加键盘快捷键以打开和关闭您的咖啡因替换:“系统设置”>“键盘”>“快捷方式”>“自定义快捷方式”
添加命令:
/path/to/insomnia.py
要选择一个关键组合
而已。
您还可以使用这里的几个脚本解决方案,我认为这些解决方案更加智能,因为它们根据网络活动或文件夹大小的变化来确定活动。
例如,如果您想在备份或torrent客户端工作时保持计算机处于唤醒状态,请使用dhiya链接中的第二个解决方案。 它将检查网络流量并保持清醒直到流量停止。 如果您使用的是以太网而不是无线局域网,请记住在代码中将’wlan0’更改为’eth0’。
更新 2015年9月17日:我从下面的链接修改了dhiya的代码,以便根据网络流量或用户活动保持系统唤醒,并在桌面会话最终进入锁定/登录屏幕而没有网络流量时强制暂停。 该程序将所有内容记录到日志文件中。 还提供了Config来管理日志文件。 我已将程序命名为“Keep Awake”。
链接 : 有没有办法让Ubuntu在下载过程中不暂停?
使用Jacob Vlijm真正有用的脚本作为起点,我将其变成了一个function齐全的应用程序,包括配置选项,电池感知等。
你可以在GitHub上抓住它 。 无需安装。 只是:
- 下载
.tar.gz
并解压缩文件(如果您是git用户,则将主分支克隆)到您希望应用程序生存的任何位置。 在$PATH
上使用它是没有必要的。 -
安装依赖项:
sudo apt install xdotool xprintidle
如果你正在使用笔记本电脑,你也会想要
acpi
。 - 从您安装的目录中,运行
sleep_inhibit
。 - 如果您希望应用程序在每次登录时自动启动,请打开图标的菜单,选择“首选项”,然后在首选项窗口中启用它。
- 如果您决定将其卸载,请退出Sleep Inhibit,然后运行
cleanup.py
,确保对所有问题回答“是”。 然后删除目录,所有跟踪都将消失。