Lorsque je démarre mon ordinateur, je veux qu'il se souvienne de mes applications ouvertes avant de fermer la dernière session, comme Ubuntu, et d'autres distributions le font normalement.
En cherchant sur Google, je vois que je peux exécuter des applications lorsque je démarre une session, en configurant le fichier de démarrage automatique, mais je ne veux pas toujours exécuter les mêmes programmes au démarrage, je veux plutôt rouvrir les programmes ouverts avant la fermeture de la dernière session.
J'utilise Fedora spin avec LXDE.
Réponse acceptée :
Apparemment, LXDE n'a pas de gestionnaire de session approprié. Cependant, comme vous l'avez mentionné, nous pouvons utiliser le fichier de démarrage automatique. Tout ce que nous avons à faire est de créer une liste dynamique des programmes que nous exécutons avant de quitter le bureau.
Voici un petit script bash que j'ai préparé qui analysera les enfants de la fenêtre racine X11 à la recherche d'applications à ajouter au fichier de démarrage automatique. Il a des listes noires et blanches facultatives. Utilisez la liste noire pour des choses comme le gestionnaire de fenêtres ou tout ce que vous ne voulez jamais exécuter. Inversement, utilisez la liste blanche pour quelque chose que vous voulez toujours exécuter.
Essayez de l'exécuter dans un shell pour voir à quoi ressemble la sortie, puis vous pourrez voir si vous devez ajouter quelque chose à la liste noire.
Vous devrez le câbler pour qu'il s'exécute d'une manière ou d'une autre avant de quitter LXDE. Probablement en ajoutant une nouvelle entrée dans un menu.
Par exemple :scriptnamehere.bash > ~/.config/lxsession/LXDE/autostart
Comme vous pouvez le voir, cela réécrira le fichier de démarrage automatique à chaque exécution, d'où la nécessité de la liste blanche.
#!/bin/bash
WINDOWS=($(xwininfo -root -children | \
egrep \"[a-zA-Z]*\" | \
cut -d' ' -f7 | \
sed 's/":\?//g' | \
sort -du))
BLACKLIST=()
WHITELIST=()
for window in ${WINDOWS[@]}; do
# test to see if element in array is an executable
WHICH=$(which $window 2>/dev/null)
# is it in the blacklist?
# if so, move to the next window
for app in ${BLACKLIST[@]}; do
if [[ $app == $window ]]; then
continue 2
fi
done
# otherwise add it to the autostart list
if [[ -f $WHICH ]]; then
APPS[${#APPS[*]}]="$window"
fi
done
# add whitelisted apps
for app in ${WHITELIST[@]}; do
APPS[${#APPS[*]}]="$app"
done
for app in ${APPS[@]}; do
printf "@%s\n" "$app"
done