15

I'm running Xubuntu 13.10 with xfce4-panel 4.10.1 and my sessions keeps getting saved involuntarily. I'm well aware that this is a bug so I'd like to ask if anyone knows a workaround to permanently disable/delete this feature (by removing/editing some files maybe)?

I've spent hours searching and tried a lot of the methods already but none of them worked, or at least were not permanent. Some of the stuff I've tried:

How can I turn off Xfce session saving system-wide?
(This basically just removed the tick-box in the logout prompt)

Xubuntu reopens last session applications even though it shouldn't
(Deleting the cached sessions was not a permanent solution)

I would greatly appreciate your help!

My temorarily solution:
I created a simple bash script and placed an application launcher (which runs the script when pressed) on my task panel. The script will delete the "~/.cache/sessions" directory and promt log out.

The script can be found here: http://pastebin.com/aqx483pn

Basically this will be the button which you use to logout/reboot/shutdown.


Update: This only occurs if you added "restart" to the listing, in your "Action Button" (the button with your username written on). If you restart using log out -> restart it should reboot normally and not save your session. Thus, the temporarily solution above is not necessary, I will leave it there as a reference.

4 Answers4

15

The solution is two-step.

  1. Disable Automatically save sessions on logout in Settings > Sessions > General > Logout Settings. Also make sure that you disable Save session for future logins in the Logout prompt (the window that pops when you actually try to logout).

    See:

  2. You need to log out, delete the contents of ~/.cache/sessions, then log into a clean session. (You can also delete your current session via Settings > Sessions > Session > Clear Saved Sessions.)

    See:

landroni
  • 6,011
7

Delete existing sessions:

rm .cache/session/*

Make directory read-only:

chmod -w .cache/session

You can enable session-saving by granting Write right on the directory:

chmod +w .cache/session

Tested with Xubuntu 14.04.

Pablo Bianchi
  • 17,371
ern0
  • 121
2

I'm sorry if it isn't answer, but I can't comment.

I have had the same problem with that bug. And I "resolved" it by using "delete part" of your script:

#!/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

I execute this-way modified script on reboot and shutdown.

This can be set-up according to instructions here.

Pablo Bianchi
  • 17,371
jirimertin
  • 176
  • 4
0

One (crude)way is patching /usr/bin/xfce4-session

searching into 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>

according to documentation

void gtk_toggle_button_set_active (
  GtkToggleButton* toggle_button,
  gboolean is_active
)

if we pass FALSE to is_active the toggle button is disabled

this can be done by patching

these bytes 8b 74 24 24 with these 31 f6 90 90

the result looks like this

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>

noni
  • 1