JiK*_*JiK 7 screensaver power-management
我有一个戴尔 XPS 13(2015 年型号),我使用 Ubuntu 15.10 和 Xmonad。我已经xfce4-power-manager运行,gnome-screensaver用于锁定屏幕。在 xfce4-power-manager 的设置对话框中,有一个设置“当笔记本电脑盖子关闭时”,它有三个选项(分别用于电池和插入时):关闭显示、暂停和锁定屏幕。
如果我选择“关闭显示器”,合上盖子时屏幕不会被锁定。我想在合上盖子时锁定屏幕。但是,当我选择“锁定屏幕”时,显示屏似乎没有关闭。为了省电,我也想关掉显示器。获得两者的好(简单和/或有点规范)方法是什么?
使用 gnome-screensaver 和 XFCE 消隐后锁定屏幕 的问题可能相关,但没有答案。
我认为在 XFCE 电源管理器中不可能做到这一点。但是,您可以为锁定屏幕和关闭屏幕创建一个脚本,并使其在您合上盖子时立即启动,从而覆盖电源管理器的设置。
\n\nUbuntu 官方帮助页面报告了如何启动自定义脚本。我将按顺序写这些段落,为了了解每个步骤的原因,请阅读原始帖子。也许这不是最简单的过程(无论如何它都非常简单,因为您只需输入一系列指定的命令并用精确的内容填充文件),但我认为这是唯一的方法。而且,它非常规范,无论是小写还是大写 C,解决方案都在 Ubuntu 的官方帮助中。
\n\n首先,创建一个脚本以使环境变量可供 root 用户使用,以便它可以在普通用户的环境中启动命令。\n(我输入命令是mousepad因为它是 XFCE 的默认文本编辑器。将其替换使用GEdit、SciTE、Emacs、nano或vim您使用的任何编辑器)
$ mousepad ~/export_x_info\nRun Code Online (Sandbox Code Playgroud)\n\n具有以下内容
\n\n\n\n\n# 在启动时导出 dbus 会话地址,以便它可以被任何其他环境使用
\n\n
\n sleep 5
\n touch $HOME/.Xdbus
\n chmod 600 $HOME/.Xdbus
\n env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
\n echo \'export DBUS_SESSION_BUS_ADDRESS\' >> $HOME/.Xdbus# 在启动时导出 XAUTHORITY 值,以便 cron 可以使用它
\n
\n env | grep XAUTHORITY >> $HOME/.Xdbus
\n echo \'export XAUTHORITY\' >> $HOME/.Xdbus
并使其可执行
\n\n$ chmod 700 ~/export_x_info\nRun Code Online (Sandbox Code Playgroud)\n\n将其添加到Settings\xe2\x86\x92 Session and Startup\xe2\x86\x92Application autostart中以将其设置为在启动时运行。
创造/etc/acpi/events/lm_lid
# mousepad /etc/acpi/events/lm_lid\nRun Code Online (Sandbox Code Playgroud)\n\n有了这个内容
\n\n\n\n\n事件=按钮/盖子。*
\n
\n 操作=/etc/acpi/lid.sh
这将执行/etc/api/lid.sh这将在触发盖子按钮时让我们来创建它
# mousepad /etc/api/lid.sh\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n#!/bin/bash
\n\n/home/%user/lid_event
\n
(显然替换%user为您的用户名)
这意味着脚本将执行/home/%user/lid_event。我们也来创建它吧
$ mousepad ~/lid_event\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\ngrep -q 关闭 /proc/acpi/button/lid/LID/state
\n
\n if [ $? = 0 ]
\n 然后
\n /home/%user/close;
\n 否则
\n /home/%user/open;
\n 菲
~/open如果盖子打开并且~/close关闭,再次,让我们创建它们:
$ mousepad ~/close\nRun Code Online (Sandbox Code Playgroud)\n\n由于您需要关闭屏幕xset dpms force off并需要锁定屏幕xflock4,因此将其写在里面close:
\n\n\n#运行此命令以便 root 可以在用户环境下运行以下命令
\n
\n source /home/%user/.Xdbus
\n #锁定并关闭屏幕
\n DISPLAY=:0.0 su %user -c "xflock4 && xset dpms 强制关闭"
打开里面,按照Ubuntu帮助的建议,你可以播放你选择的声音(我用Barney Gumble的打嗝做了测试)
\n\n\n\n\n#运行此命令以便 root 可以在用户环境下运行以下命令
\n
\n source /home/%user/.Xdbus
\n #播放打开的声音
\n DISPLAY=:0.0 su %user -c "aplay %您的选择的路径/声音”
让我们让它们全部可执行
\n\n$ chmod +x ~/lid_event\n$ chmod +x ~/open\n$ chmod +x ~/close\nRun Code Online (Sandbox Code Playgroud)\n\n重新启动 acpid
\n\n# /etc/init.d/acpid restart\nRun Code Online (Sandbox Code Playgroud)\n\n启动~/export_x_info(或重新启动笔记本电脑,以便在启动时自动启动)并关闭/打开盖子以查看其是否正常工作。
注意:在我的笔记本电脑中,锁定屏幕也会将其关闭,因此我无法 100% 测试双重操作,但它可以锁定它。此外,作为示例,帮助页面还提供了一个操作,可以在关闭盖子时将 Pidgin 的状态更改为“离开”,在打开盖子时更改为“我在这里”,非常有用。
\n\nTL;DR(如果懒人或新手遇到过这个问题):在灰色背景中输入命令(#意味着您需要提升 root 权限,或者只需sudo在命令之前键入,而$意味着您应该像常规一样输入命令用户)。当命令调用文本编辑器(即mousepad)时,将黄色背景中的部分复制并粘贴到编辑器中,然后保存并关闭。
| 归档时间: |
|
| 查看次数: |
16001 次 |
| 最近记录: |