笔记本电脑电源按钮不工作

我有一个(看似相当异国情调的)戴尔Latitude XT2笔记本运行Lubuntu 12.04,全新安装。 试图让电源按钮按预期工作(打开注销对话框lubuntu-logout ),但没有成功:电源按钮除了长按强制断电外什么也没做。

电源按钮本身被检测到并起作用。 在xfce4-power-manager-settings中,当我将电源按钮操作从“Ask”(=打开lubuntu-logout )设置为“Shutdown”时,笔记本电脑成功关闭; 按下电源按钮被识别并正确处理。

编辑:我从问题中删除了一堆信息,因为它似乎与问题无关。

安装acpiacpi-support (如果尚未安装)。

  • 转到/etc/acpi/events
  • 应该有一个名为powerbtn的文件(如果没有,请创建它)。 我安装中的文件内容是:
 #/ etc / acpi / events / powerbtn
 #当用户按下电源按钮并呼叫时,会调用此方法
 #/ etc / acpi / powerbtn.sh进行进一步处理。

 #(可选)您可以指定占位符%e。 会过去的
 #通过整个内核事件消息到你的程序
 #defigure。

 #我们需要对“按钮电源。*”和“按钮/电源。*”作出反应
内核更改次数。

 event =按钮[/]电源
行动=的/ etc / ACPI / powerbtn.sh
  • 您可以通过编辑此文件中的action变量将操作与电源按钮相关联。
  • 在我的安装中,/ /etc/acpi/powerbtn.sh的内容是:
 #!/ bin / sh的
 #/ etc / acpi / powerbtn.sh
 #当putton电源启动时启动关机
 #press。

 [-r / usr / share / acpi-support / power-funcs] &&。 在/ usr /共享/ ACPI支持/功率funcs中

 #getXuser获取属于$ displaynum中显示的X用户。
 #如果你想要前景X用户,请使用getXconsole!
 getXuser(){
         user =`pinky -fw |  awk'{if($ 2 ==“:'$ displaynum'”|| $(NF)==“:'$ displaynum'”){print $ 1; 出口;  }''
         if [x“$ user”= x“”]; 然后
                 startx =`pgrep -n startx`
                 if [x“$ startx”!= x“”]; 然后
                         user =`ps -o user --no-headers $ startx`
                科幻
        科幻
         if [x“$ user”!= x“”]; 然后
                 userhome =`getent passwd $ user |  cut -d:-f6`
                 export XAUTHORITY = $ userhome / .Xauthority
        其他
                 export XAUTHORITY =“”
        科幻
         export XUSER = $ user
 }

 #如果我们刚刚恢复,请跳过。
 test -f / var / lock / acpisleep &&退出0

 #如果当前的X控制台用户正在运行电源管理守护程序
 #处理暂停/恢复请求,让他们处理策略这是有效的
 #与'acpi-support'的'/ usr / share / acpi-support / policy-funcs'文件相同。

 [-r / usr / share / acpi-support / power-funcs] && getXconsole
 PMS =“gnome-settings-daemon kpowersave xfce4-power-manager”
 PMS =“$ PMS guidance-power-manager.py dalston-power-applet”

如果pidof x $ PMS> / dev / null; 然后
        出口
 elif测试“$ XUSER”!=“”&& pidof dcopserver> / dev / null && test -x / usr / bin / dcop && / usr / bin / dcop --user $ XUSER kded kded loadedModules |  grep -q klaptopdaemon; 然后
        出口
 elif test“$ XUSER”!=“”&& test -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; qdbus org.kde.kded”|  grep -q powerdevil; 然后
                        出口
                科幻
        科幻
科幻

 #如果其他所有方法都失败了,只需启动普通关机。
 / sbin / shutdown -h now“按下电源按钮”

它似乎是Lubuntu中的一个已知错误 。 在xfce4-power-manager-settings中,有几个操作可供选择按下电源按钮。 当您选择“关机”时,它会按预期工作,但是当您选择“询问”时,没有任何反应。

解决方法在评论#10中 。 这个对我有用。 似乎xfce4和LXDE之间存在潜在的问题。

您可以使用(附加)acpi守护程序创建相同的行为,如green7所述。 他的回答中的版本关闭了PC没有对话框,但我们在聊天中讨论过你可以从脚本启动lubuntu-logout而不是简单地关闭计算机。 但是,这需要一些工作,因为您必须以允许连接到X的用户启动注销应用程序,并提供必要的环境变量(如$DISPLAY )。 由于env变量似乎在发行版之间有所不同,我认为你必须仔细查看它们的LXDE。