KDE 支持使用任意名称保存会话。这可以通过使用命令来实现saveCurrentSessionAs
。例如,要保存名为“session01”的会话,我们执行
DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.saveCurrentSessionAs "session01"
然后session01
将出现在返回的列表中
DISPLAY=:0.0 qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.sessionList
如下:
default
session01
saved by user
saved at previous logout
所有这些已保存会话的内容都可以在中看到$HOME/.config/ksmserverrc
,其中特别包含以下行
[Session: session01]
clientId1=102221941cd1ac000155588720400000011540004
clientId10=102221941cd1ac000155604496400000011810016
ETC。
我想让系统假定中描述的状态session01
。
我知道一种破解方法。我可以在文件中手动用与会话$HOME/.config/ksmserverrc
对应的文本saved by user
覆盖与会话对应的文本session01
。现在假设我已经设置了我的系统,以便在登录时恢复手动保存的会话(如何做到这一点在回答对于这个问题:无需关闭即可在 KDE 环境中保存会话设置)。然后在下次登录时,KDE 将恢复 - 中的状态saved by user
,当然,在我破解之后,它将与 中的状态相同session01
。
这可以通过脚本来完成。事实上,我相信,有通过脚本完成,即这个老剧本从 2012 年开始 (寻找功能sessionRestore
)。
但我想知道是否有办法做到这一点而不进行黑客攻击。(我刚才提到的脚本的作者同意该脚本是一个 hack(不是解决方案)—参见结尾这一页)那么,我的问题是:
有没有一种“非黑客”方式可以让我的系统采用 中保存的状态
session01
?换句话说,是否有特定的 KDE 命令或设置可以通过名称加载该会话?如果没有,那么saveCurrentSessionAs
命令有什么意义?
(不管怎样,我在 kubuntu 18.04 上运行 KDE Plasma 版本 5.12.7。)