我有一台 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 的默认文本编辑器。将其替换为GEdit
、SciTE
、Emacs
、nano
或vim
您使用的任何编辑器)
$ 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
将其添加到Settings
→ Session and Startup
→Application 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 的电源管理设置有所不同。