sin*_*ata 5 gui command-line suspend unity
我想要一个可以映射到按钮或在我的网络中执行的命令。
到目前为止,我知道该命令sudo pm-suspend,但我无法pmi action suspend在 12.04 或 14.04 上工作:
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Hal was not provided by any .service files
我还使用了这种据说更干净的方法:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
但所有这些方法都有相同的明显结果。当我唤醒计算机时,无论是在 12.04 还是 14.04,一些未完成的业务会使 Unity 启动器出现故障,我必须与其交互以“修复它”。

如果我从 Unity GUI 中暂停,则不会发生这种情况。我的笔记本电脑也不会发生这种情况,因为它有一个专用的睡眠键。GUI 方法和上述方法还有另一个明显的区别,在干净的 GUI 方法(包括我的笔记本电脑)中,我收到一条永远不会与“脏”方法一起出现的通知。

那么 Unity 正确挂起时会调用什么函数/程序/脚本呢?我如何将其映射到按键/事件/手势?
可以使用以下命令复制屏幕右上角的会话指示器的挂起dbus。
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.Suspend
Run Code Online (Sandbox Code Playgroud)
我之前在其他脚本和 Askubuntu 上的其他答案中使用过这个 dbus 服务。例如,在这篇文章中,这已用于确定用户在登录时运行自定义脚本的特定选择:How can I run a local command (to run a script) on (just before) log out of a Unity session?
| 归档时间: |
|
| 查看次数: |
266 次 |
| 最近记录: |