Cuando encienda mi computadora, quiero que recuerde mis aplicaciones abiertas antes de cerrar la última sesión, como Ubuntu, y otras distribuciones lo hacen normalmente.
Buscando en Google, veo que puedo ejecutar aplicaciones cuando inicio la sesión, configurando el archivo de inicio automático, pero no quiero ejecutar siempre los mismos programas al inicio, sino que quiero volver a abrir los programas abiertos antes de cerrar la última sesión.
Yo uso Fedora spin con LXDE.
Respuesta aceptada:
Aparentemente, LXDE no tiene un administrador de sesión adecuado. Sin embargo, como ha mencionado, podemos usar el archivo de inicio automático. Todo lo que tenemos que hacer es crear una lista dinámica de los programas que estamos ejecutando antes de salir del escritorio.
Aquí hay un pequeño script de bash que preparé que analizará los elementos secundarios de la ventana raíz X11 en busca de aplicaciones para agregar al archivo de inicio automático. Tiene listas blancas y negras opcionales. Use la lista negra para cosas como el administrador de ventanas o cualquier cosa que nunca quiera ejecutar. Por el contrario, use la lista blanca para algo que siempre quiera ejecutar.
Intente ejecutarlo en un shell para ver cómo se ve la salida, luego puede ver si necesita agregar algo a la lista negra.
Deberá conectar esto para que se ejecute de alguna manera antes de salir de LXDE. Probablemente agregando una nueva entrada en un menú.
Por ejemplo:scriptnamehere.bash > ~/.config/lxsession/LXDE/autostart
Como puede ver, esto reescribirá el archivo de inicio automático cada vez que se ejecute, de ahí la necesidad de la lista blanca.
#!/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