GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erinnern Sie sich an Anwendungen beim Abmelden von Lxde?

Wenn ich meinen Computer starte, möchte ich, dass sich meine Anwendungen daran erinnern, die vor dem Schließen der letzten Sitzung geöffnet wurden, z. B. Ubuntu, und andere Distributionen tun dies normalerweise.

Beim Googeln sehe ich, dass ich Apps ausführen kann, wenn ich die Sitzung starte, die Autostart-Datei konfiguriere, aber ich möchte nicht immer die gleichen Programme beim Start ausführen, sondern die vor dem Schließen der letzten Sitzung geöffneten Programme erneut öffnen.

Ich verwende Fedora Spin mit LXDE.

Akzeptierte Antwort:

Anscheinend hat LXDE keinen richtigen Sitzungsmanager. Wie Sie jedoch erwähnt haben, können wir die Autostart-Datei verwenden. Wir müssen lediglich eine dynamische Liste der Programme erstellen, die wir ausführen, bevor wir den Desktop verlassen.

Hier ist ein kleines Bash-Skript, das ich erstellt habe, das die untergeordneten Elemente des Root-X11-Fensters analysiert und nach Apps sucht, die der Autostart-Datei hinzugefügt werden können. Es verfügt über optionale schwarze und weiße Listen. Verwenden Sie die Blacklist für Dinge wie den Fenstermanager oder alles, was Sie niemals ausführen möchten. Verwenden Sie umgekehrt die Whitelist für etwas, das Sie immer ausführen möchten.

Versuchen Sie, es in einer Shell auszuführen, um zu sehen, wie die Ausgabe aussieht, dann können Sie sehen, ob Sie etwas zur schwarzen Liste hinzufügen müssen.

Sie müssen dies irgendwie verdrahten, damit es läuft, bevor Sie LXDE beenden. Wahrscheinlich durch Hinzufügen eines neuen Eintrags in einem Menü.

Beispiel:scriptnamehere.bash > ~/.config/lxsession/LXDE/autostart

Wie Sie sehen können, wird die Autostart-Datei jedes Mal neu geschrieben, wenn sie ausgeführt wird, daher die Notwendigkeit für die 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 – Wie führe ich einen Bootloader von Linux aus?

  2. Ubuntu – Befehl zum Ausführen beim Abmelden erzwingen?

  3. So führen Sie einen Virenscan von cPanel aus

  4. So führen Sie eine sh-Datei aus einer anderen sh-Datei aus

  5. Führen Sie ein Shell-Skript im neuen Terminal vom aktuellen Terminal aus

Führen Sie Ihre bevorzugten Windows-Anwendungen unter Linux aus

Führen Sie Windows-Anwendungen unter Linux mit Crossover 15 aus

So führen Sie Windows-Anwendungen und -Spiele unter Linux mit Wine aus

Pipx – Installieren und Ausführen von Python-Anwendungen in isolierten Umgebungen

Wie Sie sich automatisch laufende Anwendungen von Ihrer letzten Sitzung in Debian merken

Zulassen, dass node.js-Anwendungen auf Port 80 ausgeführt werden