• [^] # Re: voir du côté de /etc/gdm3/PostSession/Default ou un fichier dans le même dossier ?

    Posté par . En réponse au message exécution d'un programme en fin de session gnome (avant déconnexion). Évalué à 1.

    Merci à tous les deux pour la piste prometteuse des extensions Gnome Shell.
    Malheureusement, n'étant pas programmeur à la base, elle va me demander un peu plus de boulot.

    • La solution ChatGPT injectée dans une extension créée avec la commande gnome-extensions create --interactive ne marche pas directement sous Gnome 3.38 (je suis sous Debian oldstable). Ça ne me surprend guère, car Gnome change beaucoup et régulièrement le fonctionnement des extensions. Je testerai en VM dans une Fedora 40, pour vérifier que c'est bien une question de version.

    • il me semble que parmi les extensions trouvées avec une recherche session sur https://extensions.gnome.org/, il n'y en a pas qui se déclenchent lorsque l'utilisateur se déconnecte.

    Je vais essayer d'investiguer (test en version récente, debug pour adapter ensuite), et vous direz si je m'en sors.

    Néanmoins sur la solution ChatGPT, il me semble qu'il affiche une boîte de dialogue inutile pour moi : 'Voulez-vous exécuter un script avant de fermer la session ?'
    En conséquence, cela réduirait le code à assimiler et adapter à :

    const { St, Main, Shell, Meta } = imports.gi;
    const Dialog = imports.ui.modalDialog;
    const ExtensionUtils = imports.misc.extensionUtils;
    let logoutSignal;
    function init() {
     // Initialisation si nécessaire
    }
    function enable() {
     // Exécuter un script shell ici
     logoutSignal = global.display.connect('end-session', (display, screen) => {
     Shell.util_spawn(['sh', '-c', '/chemin/vers/votre/script.sh']);
     });
    }
    function disable() {
     // Nettoyage lors de la désactivation
     if (logoutSignal) {
     global.display.disconnect(logoutSignal);
     logoutSignal = null;
     }
    }

    c'est ça ?