如何在Ubuntu中使用热键关闭显示器

时间:2020-01-09 10:45:07  来源:igfitidea点击:

通过热键关闭显示器的传统方式现在已被打破。一个非常简单的Python脚本可以可靠,高效地恢复该功能。

关闭监视器的旧方法是通过xset命令:

xset dpms force off

有一些变化,但是自从Ubuntu Karmic(9.10)起,它就被打破了。某些系统调用显然与该命令不兼容,导致屏幕在大约一分钟后唤醒。在对此烦恼了一段时间之后,我在Ubuntu论坛上找到了一些解决方案。循环运行此命令似乎会占用大量CPU,并且没有一种非常优雅的方法可以对其进行转义。值得庆幸的是,一个用户nxmehta找到了一个使用简单Python脚本的解决方案,该解决方案适用于从Karmic到Natty的所有内容。

首先,我们需要具有一些依赖性,因此打开一个终端并输入以下命令:

sudo apt-get install python python-xlib

如果尚未安装python和python-xlib软件包,则将安装它们。接下来,打开文本编辑器(gedit)并复制/粘贴以下文本:

#!/usr/bin/python

import time
import subprocess
from Xlib import X
from Xlib.display import Display

display = Display(':0')
root = display.screen().root
root.grab_pointer(True,
        X.ButtonPressMask | X.ButtonReleaseMask | X.PointerMotionMask,
        X.GrabModeAsync, X.GrabModeAsync, 0, 0, X.CurrentTime)
root.grab_keyboard(True,
        X.GrabModeAsync, X.GrabModeAsync, X.CurrentTime)

subprocess.call('xset dpms force off'.split())
p = subprocess.Popen('gnome-screensaver-command -i'.split())
time.sleep(1)

while True:
    print display.next_event()
    p.terminate()
    break

用适当的名称保存文件。我将其余的脚本卡在~/ bin / screen_off.sh中。

接下来,右键单击该文件,然后转到"属性"。

在"权限"选项卡下,确保选中"允许程序执行文件"。单击关闭。

现在,我们可以将其分配给任何键盘快捷键!我想将我的密码设置为Caps Lock,因此必须先禁用该键。我们可以通过转到键盘>布局>选项来实现。

在这里,请选择Caps Lock键行为下的Caps Lock已禁用。

要将此脚本分配给键盘快捷键,请打开"键盘快捷键"首选项。

单击"添加",为快捷方式命名,该命令将只是脚本的位置。单击"应用",然后在快捷方式下单击以进行设置。如果禁用了Caps Lock,我们会看到它列为VoidSymbol,但它将正常运行。