我有一台(看起来相当奇特的)戴尔 Latitude XT2 笔记本,运行 Lubuntu 12.04,全新安装。尝试让电源按钮按预期工作(打开注销对话框lubuntu-logout
),但没有成功:电源按钮除了长按强制关机外什么也不做。
电源按钮本身被检测到并正常工作。在 xfce4-power-manager-settings 中,当我将电源按钮操作从“询问”(= 打开lubuntu-logout
)设置为“关机”时,笔记本电脑成功关机;按下电源按钮被正确识别和处理。
编辑:我从问题中删除了大量信息,因为它似乎与问题无关。
答案1
如果尚未安装,请安装acpi
和。acpi-support
- 去
/etc/acpi/events
。 - 应该有一个名为的文件
powerbtn
(如果没有,请创建它)。我的安装中的文件内容是:
#/etc/acpi/events/powerbtn # 当用户按下电源按钮并调用时,将调用此方法 # /etc/acpi/powerbtn.sh 进行进一步处理。 # 您也可以指定占位符 %e。它将传递 # 通过整个内核事件消息传递给程序 # 指定的。 # 我们需要对“button power.*”和“button/power.*”做出反应,因为 内核改变的数量。 事件=按钮[ /]电源 操作=/etc/acpi/powerbtn.sh
action
您可以通过编辑此文件中的变量将操作与电源按钮关联起来。- 在我的安装中,内容
/etc/acpi/powerbtn.sh
是:
/bin/sh #!/bin/sh 复制代码 #/etc/acpi/powerbtn.sh # 当电源按钮被按下时启动关机 已按下 # 。 [ -r /usr/share/acpi-support/power-funcs ] && . /usr/share/acpi-support/power-funcs # getXuser 获取属于 $displaynum 中的显示的 X 用户。 # 如果您想要前台 X 用户,请使用 getXconsole! 获取X用户(){ 用户 =`pinky -fw | awk'{如果 ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) {打印 $1;退出;}}'` 如果 [ x"$user" = x"" ]; 然后 startx=`pgrep -n startx` 如果 [ x"$startx" != x"" ]; 然后 用户=`ps -o 用户 --no-headers $startx` 菲 菲 如果 [ x"$user" != x"" ]; 然后 userhome=`getent passwd $user | cut -d: -f6` 导出 XAUTHORITY=$userhome/.Xauthority 别的 导出 XAUTHORITY="" 菲 导出 XUSER=$user } # 如果我们正处于恢复过程中,则跳过。 测试 -f /var/lock/acpisleep && 退出 0 # 如果当前 X 控制台用户正在运行电源管理守护进程, # 处理暂停/恢复请求,让它们处理策略,这很有效 # 与‘acpi-support’的‘/usr/share/acpi-support/policy-funcs’文件相同。 [ -r /usr/share/acpi-support/power-funcs ] && 获取Xconsole PMS=“gnome-settings-daemon kpowersave xfce4-电源管理器” PMS="$PMS 指导电源管理器.py dalston-power-applet" 如果 pidof x $PMS > /dev/null; 那么 出口 elif 测试“$XUSER”!=“”&&pidof dcopserver>/dev/null&&测试-x/usr/bin/dcop&&/usr/bin/dcop--user$XUSERkdedkded loadedModules|grep-qklaptopdaemon;然后 出口 elif 测试“$XUSER”!=“”&&测试-x /usr/bin/qdbus;然后 kded4pid=$(pgrep -n -u $XUSER kded4) 如果测试“$kded4pid”!=“”;那么 dbusaddr=$(su-$XUSER-c“grep-z DBUS_SESSION_BUS_ADDRESS/proc/$kded4pid/environ”) 如果测试“$dbusaddr”!=“”&&su-$XUSER-c“export$dbusaddr;qdbusorg.kde.kded”|grep-qpowerdevil;然后 出口 菲 菲 菲 # 如果一切都失败了,就启动普通关机。 /sbin/shutdown -h 现在“按下电源按钮”
答案2
这似乎是一个已知错误在 Lubuntu 中。在 xfce4-power-manager-settings 中,有几种操作可供按下电源按钮时选择。当您选择“关机”时,它会按预期工作,但当您选择“询问”时,什么也不会发生。
解决方法是评论#10。对我来说,它有用。看来 xfce4 和 LXDE 之间存在潜在问题。
您可以使用 (附加) acpi 守护程序创建相同的行为,如 green7 所述。他的回答中的版本关闭 PC 而不显示对话框,但我们在聊天中讨论过,您可以lubuntu-logout
从脚本开始,而不是简单地关闭计算机。不过,这需要一些工作,因为您必须以允许连接到 X 的用户身份启动注销应用程序,并提供必要的环境变量(如$DISPLAY
)。由于环境变量似乎在发行版之间有所不同,我认为您必须仔细查找 LXDE 的变量。
解决方法链接已损坏,但似乎已恢复(尽管网站速度很慢)。以下是要点:
login to your LXDE session (Lubuntu settings in the combo box) open a terminal kill xfce4-power-manager: xfce4-power-manager -q openbox --reconfigure start xfce4-power-manager: xfce4-power-manager
[...]
我的看法是 xfce4-power-manager 和 LXDE 之间存在冲突,并且这些应用程序的启动顺序似乎很重要......奇怪......