如何完全关闭屏幕保护和电源管理?

我正在寻找一种通过命令行关闭屏幕保护和电源管理的方法。
我知道可以通过图形界面来完成这个操作,但是是否可以通过命令行或者某个配置编辑器来实现呢?
以下是通过图形界面的方式(通过“屏幕”或“亮度和锁定”应用程序):

enter image description here

11个回答

11.10版本

通过命令行禁用GNOME设置守护程序的电源插件:

gsettings set org.gnome.settings-daemon.plugins.power active false

或者,使用dconf-tools软件包中的dconf-editor:

enter image description here

屏幕保护程序:

gsettings set org.gnome.desktop.screensaver idle-activation-enabled false

或者再次通过 dconf-editor

enter image description here


3这个不起作用。我有一个HDMI显示器,但它仍然在几分钟后自动关闭。所有的屏幕保护和电源设置似乎都被完全忽略了。 - Cerin
9对于那些仍在尝试使用这个解决方案的人来说,这个东西已经被弃用了,因为它的进一步描述是“此键已被弃用并被忽略。如果您不想激活屏幕保护程序,请将org.gnome.desktop.session idle-delay设置为0。”建议尝试使用org.gnome.desktop.session idle-delay。只是说说而已,希望能有所帮助。 - ksugiarto
1如果屏幕在一段时间后关闭并进入待机模式,可能与电源管理有关。请注意,在Mate mate-power-preferences中将“关闭后”设置为“从不”可能没有任何效果,如果在登录时未启动Mate的电源管理。要检查,请打开自动启动设置mate-session-properties,确保mate-power-manager的条目已启用。 - basic6
同样适用于20.04 LTS。 - Soheil

你可能会发现上述解决方案是必要的,但并不足够。屏幕可能在10分钟后仍然变黑。这是编译到Xorg中的默认设置。
要在当前会话中禁用它,请运行:
xset s off

你可以将这个放在你的.xsession文件中,以便在每次登录时禁用它。

.xsession文件位于哪里?我找不到它,我需要创建一个吗?如果需要,应该放在哪里? - dginsd
.xsession文件是您Home目录中的隐藏文件。您可以通过按下Ctrl+H来找到它。如果您没有看到该文件,您可以右键单击并创建名为.xsession的文件,或者使用您喜欢的文本编辑器来创建包含必要信息的文件。 - mstfacmly

你没有指定你想要永久解决方案还是临时解决方案。如果你想要关闭屏幕保护程序和电源管理,例如2小时,你可以简单地“禁用”这些功能。
在实践中,你只需运行
systemd-inhibit sleep 2h

作为一种替代方案,您可能希望在某个进程完成之前禁用屏幕保护程序和电源管理。例如,
systemd-inhibit wget "https://example.com/files/huge-download.dat"

下载完成前将阻止屏幕保护和节能管理。

有关详细信息,请参见man systemd-inhibit。它允许您仅禁用选定的功能,并允许设置用户可见字符串以解释为什么要禁用这些功能(如果您的系统有多个用户,则很好)。


在你的主文件夹中创建一个纯文本文档,并将此内容复制到其中。
#!/bin/bash
sleep 10 &&
xset s 0 0
xset s off
exit 0

将文档保存为“screensaver_off.sh”(不带引号),然后打开终端并输入。
chmod +x screensaver_off.sh

然后从Dash中打开启动应用程序,点击添加按钮,为您的启动应用程序命名,并输入以下命令:
"sh /home/$LOGNAME/screensaver_off.sh"

然后添加一个描述,点击添加,重新启动,完成了,不再有屏幕空白。
您需要为每个用户执行此操作,因为默认设置在注销或重新启动后会恢复。

enter image description here


2Why sleep 10? - Dirk
1Sleep 10 允许所有的 X 服务器和桌面环境加载,在更好、更快的计算机上可以使用较低的数字,这是在我的计算机上有效的方法。我相信有一种更高效和正确的方法来做到这一点,只是我不知道而已。 - dginsd
为什么在sleep之后要加上&& - Mikko Rantalainen
你应该把任何"睡眠"放在后台进行。 - ceving
&&在shell中不是将东西放到后台运行的操作符,而是逻辑上的and操作符。 - Mikko Rantalainen

通过阅读大量的论坛帖子,我最终成功通过设置crontab每4分钟运行以下命令来解决这个问题:
DISPLAY=:0.0 xset s activate

你可以忽略 DISPLAY=:0.0,如果你使用相同用户通过 SSH 登录,并且该用户使用的是 GNOME。
在我的情况下,xset s off 没有起作用。我必须每4分钟运行一次它,以防止屏幕保护程序每5分钟启动一次。 :)

你可以去系统偏好设置。 有一个叫做“亮度和锁定”的程序(我不确定英文叫什么,看一下我的截图)。 在这个菜单中,你可以定义屏幕锁定的触发条件。

enter image description here


在美式英语中,正如你所建议的那样,它被称为“亮度和锁定”。 - david6
这不是问题,电影和全屏YouTube视频仍然出现空白屏幕。 - Xamidovic

取消勾选“调暗屏幕以节省电量”是可以的。
gsettings set org.gnome.settings-daemon.plugins.power idle-dim false

将"Turn off after"设置为"永不"。
gsettings set org.gnome.desktop.session idle-delay 0

上个命令完全满足了我的需求。

这是一个对我有效的解决方案.. 我遇到的问题是,当我将我的Ubuntu 12.04升级到12.10并且升级到Gnome 3.6时,屏幕在闲置5分钟后变黑,即使我没有设置任何常规的活动屏幕保护程序,不用说这真是令人恼火..
以下是我使用的解决方案,它起作用了(我尝试了很多不同的方法,花费了太多时间在startpage.com(谷歌)上搜索)
请向下滚动至“GNOME 3.2中没有屏幕保护程序”。

http://www.webupd8.org/2011/10/things-to-tweak-after-installing-ubuntu.html


2欢迎来到Ask Ubuntu!虽然这理论上可以回答问题,但最好在这里包含答案的关键部分,并提供链接作为参考。 - Mark Paskal

在VNC Viewer上禁用Linux环境的屏幕保护程序 在此输入图像描述

Thomas的回答是正确的,但并不是每个人都有.xsession文件。您可以使用您的.profile文件代替。只需将以下行添加到您Home文件夹中的.profile文件末尾。

# 关闭屏幕空白 xset s off && xset -dpms

如果您找不到.profile文件,请在文件浏览器中打开您的Home文件夹,点击“查看”并选择“显示隐藏文件”。然后右键单击.profile文件,选择“用文本编辑器打开”,将上述内容复制并粘贴到文件末尾的空白行上,保存修改后的文件即可。


.profile即使没有运行X也会被执行。那是错误的位置。 - ceving
Arch-Linux-Wiki表示,你可以同时执行此操作xset s off -dpms - ceving