GNU/Linux >> Belajar Linux >  >> Linux

Ingat Aplikasi Saat Keluar Dari Lxde?

Ketika saya memulai komputer saya, saya ingin mengingat aplikasi saya dibuka sebelum menutup sesi terakhir seperti Ubuntu, dan distro lain melakukannya secara normal.

Googling, saya melihat bahwa saya dapat menjalankan aplikasi ketika saya memulai sesi, mengonfigurasi file autostart tetapi saya tidak ingin selalu menjalankan program yang sama di awal, sebaliknya saya ingin membuka kembali program yang dibuka sebelum menutup sesi terakhir.

Saya menggunakan Fedora spin dengan LXDE.

Jawaban yang Diterima:

Rupanya LXDE tidak memiliki manajer sesi yang tepat. Namun seperti yang Anda sebutkan, kami dapat menggunakan file autostart. Yang perlu kita lakukan adalah membuat daftar dinamis dari program yang kita jalankan sebelum kita keluar dari desktop.

Berikut ini adalah skrip bash kecil yang saya buat yang akan mengurai anak-anak dari jendela root X11 mencari aplikasi untuk ditambahkan ke file autostart. Ini memiliki daftar hitam dan putih opsional. Gunakan daftar hitam untuk hal-hal seperti pengelola jendela atau apa pun yang tidak ingin Anda jalankan. Sebaliknya gunakan daftar putih untuk sesuatu yang selalu ingin Anda jalankan.

Coba jalankan di shell untuk melihat seperti apa outputnya, lalu Anda dapat melihat apakah Anda perlu menambahkan sesuatu ke daftar hitam.

Anda harus menghubungkan ini untuk menjalankannya sebelum Anda keluar dari LXDE. Mungkin dengan menambahkan entri baru ke dalam menu.

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

Seperti yang Anda lihat, ini akan menulis ulang file autostart setiap kali dijalankan, oleh karena itu perlunya daftar putih.

#!/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 – Bagaimana Cara Menjalankan Bootloader Dari Linux?

  2. Ubuntu – Memaksa Perintah Untuk Berjalan Saat Keluar?

  3. Jalankan skrip shell di terminal baru dari terminal saat ini

  1. Bagaimana cara menjalankan skrip .sh dari jalur mana pun di terminal?

  2. Bagaimana cara menjalankan perintah Vim dari shell?

  3. Android - Apakah mungkin menjalankan aplikasi Android di Linux (normal)?

  1. Linux – Menjalankan Aplikasi Mac Os X Di Linux?

  2. Dari Mana Skrip Shell Dijalankan?

  3. Mengizinkan aplikasi node.js berjalan di port 80