如何根据活动使计算机保持唤醒状态?

Wes*_*Wes 6 suspend power-management screen system-settings

我希望能够在某些活动和运行时间较长的任务(例如下载较大的文件和观看全屏视频)期间使计算机保持唤醒状态。

我喜欢使用 Caffeine 通过防止显示器休眠来防止计算机休眠。这在我的 mac 上运行良好,但在 Ubuntu 中不起作用。

我怎样才能做到这一点?

Jac*_*ijm 7

我不知道为什么咖啡因不能让你的电脑保持清醒。我怀疑这是因为 Ubuntu 上的空闲时间相当于没有通过键盘或鼠标检测到用户活动的时间

如何防止电脑进入睡眠状态

如果您正在寻找一种解决方案来让您的计算机像咖啡因一样(应该这样做)保持清醒,那么下面的解决方案应该可行;我在 14.04 上测试过。它包含两个小脚本,您应该将它们存储在同一个文件夹中。您可以使用组合键将其打开或打开(切换)。按下它后,它将在消息中显示当前状态:

在此处输入图片说明 或者: 在此处输入图片说明

它基本上存在一个小的后台脚本,Ctrl如果空闲时间超过定义的时间量,它会模拟次要用户操作(按键),从而防止计算机进入睡眠状态或使屏幕空白。按键本身没有意义,对全屏播放视频没有影响。

如何使用

  • 您将需要拥有xprintidlexdotool安装:

    sudo apt-get install xprintidle xdotool
    
    Run Code Online (Sandbox Code Playgroud)

    inotify-tools默认情况下应该安装在Ubuntu 上,在 Xu- 或 Lubuntu 上可能不是这种情况)

  • 下面的脚本是打开/关闭,将其复制到一个空文件中,将其另存为insomnia.py(保持名称不变!)并使其可执行(!)

sudo apt-get install xprintidle xdotool
Run Code Online (Sandbox Code Playgroud)
  • 下面的(主要)脚本是让计算机保持唤醒状态,将脚本复制到一个空文件中,将其另存为caf.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..."])
Run Code Online (Sandbox Code Playgroud)

将两个脚本保存在同一个文件夹中很重要!

  • 现在添加一个键盘快捷键来打开和关闭你的咖啡因替换:“系统设置”>“键盘”>“快捷方式”>“自定义快捷方式”

    添加命令:

    /path/to/insomnia.py
    
    Run Code Online (Sandbox Code Playgroud)

    到您选择的组合键

就是这样。