如何从 Xubuntu 的会话列表中删除一些会话

use*_*own 8 session xubuntu

登录Xubuntu时,我得到一个保存会话的选择列表,其中大部分是过时的旧东西。

我以一种运动的方式按下了删除按钮。我尝试向左单击,然后向右单击-无法删除。

我浏览了系统菜单和菜单部分(以及菜单的系统部分)。

注意:不相关:如何从 LightDM 中删除会话条目?管理链接到它的登录屏幕的会话列表——它们处理会话类,如 xubuntu 与 xfce、gnome、kde——而不是不同的 xfce 会话。

注意:我想删除一些会话,而不是全部。我不想从停用会话列表开始。我有 5 个条目,想删除其中的 3 个。

小智 6

转到$HOME/.cache/sessionsxfce-session-yourdesktopname在文本编辑器中打开具有该名称的最新文件。

您的所有会话都以这种格式按名称列在文件中:

[Session: Default] 
Run Code Online (Sandbox Code Playgroud)

或者

[Session:somename]
Run Code Online (Sandbox Code Playgroud)

选择从[Session:somename]到下一个空行的整个行集(包括 [Session:somename] 行并删除它们。保存文件。


use*_*own 5

Sagarhalise使我走上了正确的道路,但只是成功了一半。

在 Xfce 中寻找的地方确实是

$HOME/.cache/sessions
Run Code Online (Sandbox Code Playgroud)

我发现很多文件的存在,包括一些空Thunar-文件,xfwm4-文件和,有趣的对我们来说,xfce4-session-asux:0,其中asux是我的本地机器上,主机名的名称。

:0 提醒一下,XServer枚举了不同的实例,我很少用,但是我用过,所以我也有一个xfce4-session-asux:1文件,而且比较老了,但是不同的session不是存放在不同的文件中,而是在文件中的不同部分。

这样的部分看起来像这样:

[Session: 2010]
key1=value1
key2=value2
...
LastAccess=1315125649
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到会话的名称(在本例中为“2010”)、一堆键值对,最后这些对是 LastAccess 键。它存储自 1.1.1970 UTC 以来的秒数。用dateor将它翻译成人类可读的日期并不短,也不容易bash arithmetic(或在评论中告诉我如何)。但至少年龄是值得计算的:

echo $((1315125649/(365*24*60*60)))
41
Run Code Online (Sandbox Code Playgroud)

所以它是 1970 年 1 月 1 日之后的 41 年(忽略闰年和夏令时,并将结果削减到整年),即 2011 年。其他字段也可以计算 - 我更喜欢scala

scala> val d = new java.util.Date (1315125649*1000L)
d: java.util.Date = Sun Sep 04 10:40:49 CEST 2011
Run Code Online (Sandbox Code Playgroud)

所以我删除了整个部分,重新​​登录后,这个会话从我的会话列表中消失了。

更新:

我现在知道日期问题的更简单的解决方案,只需放入外壳即可:

date -d @1315125649
So 4. Sep 10:40:49 CEST 2011
Run Code Online (Sandbox Code Playgroud)

所以这可以变成一个简单的脚本:

for f in  ~/.cache/sessions/xfce4-session-* 
do
   la=$(sed -n -r 's/LastAccess=(.*)/\1/p' "$f")
   echo -e $(date -d @$la) "\t$f"
done 

Fr 9. Mär 07:17:13 CET 2018     /home/stefan/.cache/sessions/xfce4-session-tux201t:0
Fr 9. Mär 07:16:03 CET 2018     /home/stefan/.cache/sessions/xfce4-session-tux201t:0.bak
Run Code Online (Sandbox Code Playgroud)