当笔记本电脑盖关闭时,关闭 Xfce 电源管理器中的显示和锁定屏幕?

当笔记本电脑盖关闭时,关闭 Xfce 电源管理器中的显示和锁定屏幕?

我有一台 Dell XPS 13(2015 型号),并且使用 Ubuntu 15.10 和 Xmonad。我已经xfce4-power-manager运行了,gnome-screensaver用来锁定屏幕。在xfce4-power-manager的设置对话框中,有一个设置“当笔记本电脑盖子关闭时”,其中有三个选项(分别用于电池使用时和插入电源时):关闭显示、暂停和锁定屏幕。

如果我选择“关闭显示器”,则合上盖子时屏幕不会被锁定。我想在合上盖子时锁定屏幕。但是,当我选择“锁定屏幕”时,显示屏似乎没有关闭。为了节省电池,我也想关闭显示器。获得两者的好(简单和/或有点规范)方法是什么?

问题 使用 gnome-screensaver 和 XFCE 消隐后锁定屏幕 可能相关,但没有答案。

答案1

我认为在 XFCE 电源管理器中不可能做到这一点。但是,您可以为锁定屏幕和关闭屏幕创建一个脚本,并使其在您合上盖子时立即启动,从而覆盖电源管理器的设置。

如何启动自定义脚本在Ubuntu 官方帮助页面。我将按顺序编写段落,为了了解每个步骤的原因,请阅读原始帖子。也许这不是最简单的过程(无论如何它都非常简单,因为您只需输入一系列指定的命令并用精确的内容填充文件),但我认为这是唯一的方法。而且,它非常规范,无论是小写还是大写 C,解决方案都在 Ubuntu 的官方帮助中。

首先,创建一个脚本以使 root 用户可以使用环境变量,以便它可以在普通用户的环境中启动命令。 (我输入mousepad命令是因为它是 XFCE 的默认文本编辑器。将其替换为GEditSciTEEmacsnanovim您使用的任何编辑器)

$ mousepad ~/export_x_info

具有以下内容

# 在启动时导出 dbus 会话地址,以便任何其他环境都可以使用
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus


# 在启动时导出 XAUTHORITY 值,以便 cron env使用它| grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus

并使其可执行

$ chmod 700 ~/export_x_info

将其添加到SettingsSession and StartupApplication autostart将其设置为在启动时运行。

创造/etc/acpi/events/lm_lid

# mousepad /etc/acpi/events/lm_lid

有了这个内容

事件=按钮/lid.*
操作=/etc/acpi/lid.sh

这将/etc/api/lid.sh在触发盖子按钮时执行。让我们来创建它

# mousepad /etc/api/lid.sh

#!/bin/bash

/home/%user/lid_event

(显然替换%user为您的用户名)

这意味着脚本将执行/home/%user/lid_event。我们也来创建一下吧

$ mousepad ~/lid_event

grep -q 关闭 /proc/acpi/button/lid/LID/state
if [ $? = 0 ]
然后
    /home/%user/close;
否则
    /home/%user/open;

~/open如果盖子打开或~/close关闭,则会执行此操作。再次,让我们创建它们:

$ mousepad ~/close

由于您需要关闭屏幕xset dpms force off并需要锁定屏幕xflock4,因此将在里面写下以下内容close

#这样运行是为了root可以在用户环境下运行以下命令
source /home/%user/.Xdbus
#锁定并关闭屏幕
DISPLAY=:0.0 su %user -c "xflock4 && xset dpms force off"

打开里面,按照Ubuntu帮助的建议,你可以播放你选择的声音(我用Barney Gumble的打嗝做了测试)

#这样运行是为了root可以在用户环境下运行以下命令
source /home/%user/.Xdbus
#播放打开的声音
DISPLAY=:0.0 su %user -c "aplay %path/to/a/sound/of /你的选择”

让我们让它们全部可执行

$ chmod +x ~/lid_event
$ chmod +x ~/open
$ chmod +x ~/close

重新启动 acpid

# /etc/init.d/acpid restart

启动~/export_x_info(或重新启动笔记本电脑,以便在启动时自动启动)并关闭/打开盖子以查看其是否正常工作。

注意:在我的笔记本电脑中,锁定屏幕也会将其关闭,因此我无法 100% 测试双重操作,但它可以锁定它。此外,作为示例,帮助页面还提供了一个操作,可以在关闭盖子时将 Pidgin 的状态更改为“离开”,在打开盖子时更改为“我在这里”,非常有用。

长话短说(如果这个问题发生在懒人或新手身上):在灰色背景中输入命令(#意味着您需要提升root权限,或者只需sudo在命令之前键入,而$意味着您应该以普通用户身份输入命令)。当命令调用文本编辑器(即mousepad)时,将黄色背景中的部分复制并粘贴到编辑器中,然后保存并关闭。

答案2

我目前不在笔记本电脑上,但请检查电源管理器-->电池(和交流电)-->显示器-->“当计算机不活动时将显示器置于睡眠状态”和“关闭显示器”当计算机处于非活动状态时”未设置为“从不”。数字并不重要,但“从不”将覆盖盖子关闭选项。

另外,请确保您运行的任何应用程序都不会禁用屏幕的省电功能。媒体播放器和游戏通常具有防止屏幕在运行时关闭的选项。

答案3

xflock4可能会调用不同的屏幕保护程序,具体取决于您的系统上安装的屏幕保护程序:请参阅/usr/bin/xflock4

在这里,我有xscreensaver,这是 中的首选选项xflock4。它可以通过 进行配置xscreensaver-command -prefs,您可以在其中将屏幕设置为在您选择的延迟后关闭。

答案4

我发现使用 xscreensaver-settings 的电源管理设置有所不同。

相关内容