我可以使用 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/