在 KDE 中使用 shell 命令保存会话

在 KDE 中使用 shell 命令保存会话

我可以使用 KDE 开始菜单保存我的 KDE 会话。但是我如何通过 shell 命令保存我的会话呢?

答案1

如果您希望保存会话管理控制模块所称的“手动保存的会话”:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession

如果您希望覆盖通常在注销时保存的会话:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSessionAs "saved at previous logout"

获取现有会话列表:

qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.sessionList
(值得注意的会话名称是“由用户保存”和“上次注销时保存”)

如果从命令中省略方法,则可以找到更多有趣的命令,如下所示:

qdbus org.kde.ksmserver /KSMServer

会话数据存储在:

  • KDE 4:~/.kde4/share/config/ksmserverrc
  • KDE 5:~/.config/ksmserverrc

答案2

KDE 开始菜单按钮保存名为“用户保存”的会话,并且当且仅当您在设置中选择了恢复手动保存的会话时,才会在登录时恢复该会话。

要从命令行保存这种类型的会话,命令DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession就可以了(对于这个答案来说,找到正确的 dbus 会话是一个更复杂的技巧)。

但是,上述命令不会在注销时保存会话。如果选择恢复注销时保存的会话,人们会认为该命令qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSessionAs "saved at previous logout"会起作用,但事实并非如此。Ksmserver 不允许覆盖此特殊会话(请参阅这行在源代码中)。

KDE 错误与后一种情况相关,它确实为解决方法提供了提示,直到错误被修复(可能需要很长时间)。

答案3

dbus-send --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSession将保存您的会话。当您想要恢复它时,运行ksmserver,它会自动加载会话。

\KSMServer(请注意和之间有一个空格org.kde.KSMServerInterface.saveCurrentSession,它们应该都在同一个终端命令中)

更多信息请见此处:http://raetsel.wordpress.com/2008/04/25/kde4-save-current-session-dbus-to-the-rescue/

相关内容