При входе в Xubuntu я получаю список сохраненных сессий, большинство из которых устарели.
Я ударил кнопку удаления в спортивной форме. Я попытался щелкнуть влево и просто щелкнуть вправо - удаление невозможно.
Я прошел через системные меню и разделы меню (и системный раздел меню).
Примечание: не связано: Как удалить записи сеанса из LightDM? или Управление списком сеансов экрана входа в систему , который ссылается на него - они обрабатывают классы сеанса, такие как xubuntu vs. xfce, gnome, kde - не разные xfce-сессии.
Примечание. Я хочу удалить некоторые сеансы, но не все. Я не хочу начинать с деактивированного списка сеансов. У меня 5 записей, и я хочу удалить 3 из них.
AFAIK, большинство диспетчеров отображения обрабатывают сеансы из файлов .desktop
, представленных в /usr/share/xsessions
. Я предполагаю, что переименование его во что-то еще удалит записи сеанса.
, например,
cd /usr/share/xsessions
mv gnome.desktop gnome.desktop.backup
xfce кэширует свою сессию в $HOME/.cache/sessions
, а также имеет конфигурации в $HOME/.config/xfce4-session
. Вы также можете попробовать просмотреть эти папки. Я думаю, что xubuntu имеет папки с именами xubuntu
вместо xfce
, так как у него есть собственный менеджер сессий.
Перейдите на $HOME/.cache/sessions
и откройте последний файл с именем xfce-session-yourdesktopname
в текстовом редакторе.
Все ваши сеансы перечислены в файле по имени в следующем формате:
[Session: Default]
или
[Session:somename]
. Выберите весь набор строк от [Session:somename]
до следующего пробела. (включая строку [Session: somename] и удалите их. Сохраните файл.
Sagarchalise вывел меня на правильный путь, но только на полпути.
Место, где искать в Xfce, действительно
$HOME/.cache/sessions
Я нашел там много файлов, включая некоторые пустые Thunar-файлы, xfwm4-файлы и, что интересно для нас, xfce4-session-asux:0
, где asux
- это имя моей локальной машины, имя хоста.
: 0 напоминает способ, XServer перечисляет разные экземпляры, которые я использовал редко, но я использовал его, поэтому у меня также есть файл xfce4-session-asux:1
, и он довольно старый, но разные сессии не нужны хранятся в разных файлах, но в разных разделах внутри файла.
Такой раздел выглядит следующим образом:
[Session: 2010]
key1=value1
key2=value2
...
LastAccess=1315125649
Таким образом, вы можете увидеть имя (в данном случае «2010») сеанса, несколько пар ключ-значение и как последние эти пары ключ LastAccess. Он хранит секунды с 1.1.1970 UTC. Не так просто и просто перевести ее на удобочитаемую дату с помощью date
или bash arithmetic
(или скажите мне, как в комментариях). Но по крайней мере возраст в годах стоит рассчитать:
echo $((1315125649/(365*24*60*60)))
41
Таким образом, это 41 год после 1.1.1970 (без учета високосных лет и перехода на летнее время и сокращения результата до целых лет), то есть 2011 год. Другие поля также могут быть вычислены - я предпочел сделать это с scala
по
scala> val d = new java.util.Date (1315125649*1000L)
d: java.util.Date = Sun Sep 04 10:40:49 CEST 2011
, поэтому я удаляю весь раздел, и после повторного входа этот сеанс исчезает из моего списка сеансов.
Теперь я знаю гораздо более простое решение проблемы с датой, просто поместив его в оболочку:
date -d @1315125649
So 4. Sep 10:40:49 CEST 2011
Так что это можно сделать простым сценарием :
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
Вот как это происходит:
xfce4-settings-manager
из терминала