GNU/Linux >> Tutoriels Linux >  >> Linux

Rappelez-vous les applications lors de la déconnexion de Lxde ?

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

Linux
  1. Linux – Exécuter des applications Mac Os X sous Linux ?

  2. Linux - Comment exécuter un chargeur de démarrage à partir de Linux ?

  3. D'où est exécuté un script Shell ?

  4. Comment exécuter des scripts Python à partir du shell

  5. Exécutez la commande sur plusieurs serveurs Linux à partir de Windows

Exécutez vos applications Windows préférées sur Linux

Exécutez des applications Windows sur Linux avec Crossover 15

Comment exécuter des applications et des jeux Windows sur Linux à l'aide de Wine

Pipx - Installer et exécuter des applications Python dans des environnements isolés

Comment se souvenir automatiquement des applications en cours d'exécution depuis votre dernière session dans Debian

Android - Est-il possible d'exécuter des applications Android sur Linux (normal) ?