GNU/Linux >> Linux Esercitazione >  >> Linux

Ricordi le applicazioni al logout da Lxde?

Quando avvio il mio computer voglio che ricordi le mie applicazioni aperte prima di chiudere l'ultima sessione come Ubuntu e altre distribuzioni lo fanno normalmente.

Googling, vedo che posso eseguire app all'avvio della sessione, configurando il file di avvio automatico ma non voglio eseguire sempre gli stessi programmi all'avvio, voglio invece riaprire i programmi aperti prima di chiudere l'ultima sessione.

Uso Fedora spin con LXDE.

Risposta accettata:

Apparentemente LXDE non ha un gestore di sessioni adeguato. Tuttavia, come hai detto, possiamo usare il file di avvio automatico. Tutto quello che dobbiamo fare è creare un elenco dinamico dei programmi in esecuzione prima di uscire dal desktop.

Ecco un piccolo script bash che ho creato che analizzerà i bambini della finestra di root X11 alla ricerca di app da aggiungere al file di avvio automatico. Ha liste nere e bianche opzionali. Usa la lista nera per cose come il window manager o qualsiasi cosa che non vuoi mai eseguire. Al contrario, usa la whitelist per qualcosa che vuoi sempre eseguire.

Prova a eseguirlo in una shell per vedere come appare l'output, quindi puoi vedere se è necessario aggiungere qualcosa alla lista nera.

Dovrai collegarlo per funzionare in qualche modo prima di uscire da LXDE. Probabilmente aggiungendo una nuova voce in un menu.

Ad esempio:scriptnamehere.bash > ~/.config/lxsession/LXDE/autostart

Come puoi vedere, questo riscriverà il file di avvio automatico ogni volta che viene eseguito, da qui la necessità della whitelist.

#!/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:esegui applicazioni Mac Os X su Linux?

  2. Linux:come eseguire un bootloader da Linux?

  3. Ubuntu:forzare l'esecuzione del comando al logout?

  4. Da dove viene eseguito uno script di shell?

  5. Come eseguire una scansione antivirus da cPanel

Esegui le tue applicazioni Windows preferite su Linux

Esegui applicazioni Windows su Linux con Crossover 15

Come eseguire applicazioni e giochi Windows su Linux usando Wine

Pipx – Installa ed esegui applicazioni Python in ambienti isolati

Come ricordare automaticamente le applicazioni in esecuzione dalla tua ultima sessione in Debian

Esegui uno script da qualsiasi luogo