我正在运行 Xubuntu 13.10 和 xfce4-panel 4.10.1,我的会话总是被不由自主地保存。我很清楚这是一个错误,所以我想问一下是否有人知道解决方法永久禁用/删除此功能(也许通过删除/编辑一些文件)?
我花了几个小时搜索,并尝试了很多方法,但都没有奏效,或者至少不是永久的。我尝试过的一些方法:
如何关闭系统范围内的 Xfce 会话保存?
(这基本上只是删除了注销提示中的复选框)
Xubuntu 重新打开了上一个会话应用程序,尽管它不应该重新打开
(删除缓存的会话不是永久的解决方案)
我将非常感谢您的帮助!
我的暂时解决办法:
我创建了一个简单的 bash 脚本,并在任务面板上放置了一个应用程序启动器(按下时运行脚本)。该脚本将删除“~/.cache/sessions”目录并提示注销。该脚本可以在这里找到: http://pastebin.com/aqx483pn
基本上,这将是您用来注销/重启/关机的按钮。
更新:仅当您在“操作按钮”(写有用户名的按钮)的列表中添加了“重新启动”时,才会发生这种情况。如果您重新启动它,log out -> restart
它应该会正常重新启动并且不会保存您的会话。因此,上面的临时解决方案是不必要的,我将把它留在那里作为参考。
答案1
解决方案分为两步。
Automatically save sessions on logout
在 中禁用Settings > Sessions > General > Logout Settings
。还要确保Save session for future logins
在 中禁用Logout prompt
(当您实际尝试注销时弹出的窗口)。看:
您需要注销,删除 的内容
~/.cache/sessions
,然后登录到一个干净的会话。(您也可以通过 删除当前会话Settings > Sessions > Session > Clear Saved Sessions
。)看:
答案2
删除现有会话:
rm .cache/session/*
使目录只读:
chmod -w .cache/session
您可以通过授予目录的写权限来启用会话保存:
chmod +w .cache/session
使用 Xubuntu 14.04 测试。
答案3
如果这不是答案,我很抱歉,但我无法发表评论。
我也遇到过同样的问题。我使用脚本的“删除部分”功能“解决”了这个问题:
#!/bin/bash
#edit.1: It will be launched by root, so we have to use full path here.
DIR=/home/USERFOLDER/.cache/sessions/
delete_sessions(){
# Deletes whatever is in DIR
rm -r -- "$DIR"
}
is_directory(){
if [ -d "$DIR" ]; then
delete_sessions
else
echo "wtf man, it's not there?!"
fi
}
is_directory
我在重启和关机时执行这样修改的脚本。
可以根据说明进行设置这里。
答案4
一种(粗暴的)方法是修补/usr/bin/xfce4-session
搜寻xfce4-session
objdump -D /usr/bin/xfce4-session | grep '<gtk_toggle_button_set_active@plt>$' -B2
2319b: 8b 74 24 24 mov 0x24(%rsp),%esi
2319f: 48 89 c7 mov %rax,%rdi
231a2: e8 f9 04 ff ff call 136a0 <gtk_toggle_button_set_active@plt>
根据文献
void gtk_toggle_button_set_active (
GtkToggleButton* toggle_button,
gboolean is_active
)
如果我们传递FALSE
到is_active
切换按钮被禁用
这可以通过修补来实现
这些字节8b 74 24 24
与这些31 f6 90 90
结果如下
objdump -D /usr/bin/xfce4-session | grep '<gtk_toggle_button_set_active@plt>$' -B4
2319b: 31 f6 xor %esi,%esi
2319d: 90 nop
2319e: 90 nop
2319f: 48 89 c7 mov %rax,%rdi
231a2: e8 f9 04 ff ff call 136a0 <gtk_toggle_button_set_active@plt>