GNU/Linux >> Linux Esercitazione >  >> Linux

Come modificare automaticamente lo sfondo di GNOME a intervalli utilizzando BASH

Hai mai desiderato avere quello sfondo automatico cambiare la funzione sulla tua distribuzione GNOME Linux? Ho perso quella funzione dopo essere passato da Cinnamon a GNOME 🙁 Ho cercato app nel centro software e purtroppo non ce n'è nessuna che sono riuscito a trovare. Tuttavia, oggi sono felice di informarti che esiste una soluzione alternativa a questa funzionalità mancante attraverso l'uso del linguaggio di scripting BASH.

Requisito

Non molto, tutto ciò di cui hai bisogno è un editor di testo per modificare alcune righe di codice sul file di script. E la possibilità di creare e salvare file di testo. Tutto qui 🙂 Nel caso tu sia un programmatore, ho omesso i commenti (documentato il codice) nello script in modo che tu possa capirlo.

Fase 1:crea il file di script

Apri il tuo programma di editor di testo preferito e salva il file come .change_wallpapers  nella tua home directory.

Notare il punto (.) preceduto dal nome del file. Vogliamo che il file venga nascosto, quindi è importante anteporre un punto prima del nome del file.\

Quindi copia e incolla lo script seguente nel file di script appena creato.

#!/bin/bash
# script to set random background wallpapers on my GNOME desktop
# set base path
export wallpaper_path=
shopt -s nullglob
# store all the image file names in wallpapers array
wallpapers=(
    $wallpaper_path/*.jpg
    $wallpaper_path/*.jpeg
    $wallpaper_path/*.png
    $wallpaper_path/*.bmp
    $wallpaper_path/*.svg
)
# get array size
wallpapers_size=${#wallpapers[*]}

Fase 2:modifica dello script

​Devi inserire il tuo percorso personalizzato nella variabile di ambiente wallpaper_path . Ad esempio, se la directory dello sfondo (o dell'immagine) si trova in /home/abc/Pictures/Wallpapers, è necessario modificare quella riga:export wallpaper_path= a

export wallpaper_path=/home/abc/Pictures/Wallpapers Inoltre, ho aggiunto le estensioni di file immagine più comuni nella variabile array wallpapers . Ma il tuo formato di file immagine preferito potrebbe essere stato perso. Forse le tue immagini sono nel formato TIFF o qualcos'altro. Assicurati di aggiungere tu stesso le estensioni mancanti. Ad esempio, se voglio aggiungere il supporto per tif, dovrò aggiungere questa dichiarazione appena sotto

$wallpaper_path/*.svg line as in:
$wallpaper_path/*.svg $wallpaper_path/*.tif

Fase 3:scegli una delle due opzioni seguenti

Scegli solo uno di loro... e salta l'altro. In caso contrario, si verificheranno problemi.
​
La prima opzione è se si desidera che lo sfondo cambi in ordine sequenziale, ad esempio partendo dalla prima immagine e continuando fino all'ultima. E poi ripetere lo stesso processo più e più volte. Quindi non sei bloccato con l'ultima immagine quando il ciclo si esaurisce. Copia e incolla il codice seguente nell'ultima riga del tuo file di script.

Cambia lo sfondo in ordine sequenziale

# set wallpapers in incremental order
index=0
while [ $index -lt $wallpapers_size ]
do
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$index]}
    # index is maxing out, so reset it
    if [ $(($index+1)) -eq $wallpapers_size ]
    then
        index=0
    else
        index=$(($index + 1))
    fi
    # keep the wallpaper for the specified time
    sleep 15m
done

Cambia lo sfondo in ordine casuale

Se preferisci la randomizzazione rispetto all'ordine sequenziale in cui i tuoi sfondi vengono visualizzati in modo casuale. Copia e incolla il codice seguente nell'ultima riga del tuo file di script.

# set random wallpapers
# loop infinitely
while true
do
    # generate random index
    random_index=$(($RANDOM % $wallpapers_size))
    # then set a random wallpaper
    gsettings set org.gnome.desktop.background picture-uri ${wallpapers[$random_index]}
    # keep the wallpaper for the specified time
    sleep 15m
done

Fase 4:Fine

I tuoi .change_wallpapers  lo script è terminato. Ora c'è solo una cosa da fare; avviare lo script quando accedi.

€‹Per questo, dobbiamo aggiungere del codice al tuo .profile file per avviare quello script. Se hai ancora l'editor di testo aperto, avvia il file .profile e copia queste quattro righe di codice nell'ultima riga.

# start my custom script for setting random background wallpapers
if [ -f "$HOME/.change_wallpapers" ] ; then
    bash $HOME/.change_wallpapers &
fi

Nel caso in cui non riuscissi a trovare il tuo file nascosto .profile nella finestra di dialogo aperta, premi CTRL + H per mostrare tutti i file nascosti.

Successivamente, puoi premere la stessa combinazione di tasti per disabilitare la visualizzazione di file e cartelle nascosti dal tuo programma di gestione dei file.

Al termine, riavvia o accedi nuovamente alla sessione affinché lo script diventi effettivo.

Conclusione

Spero che tu abbia trovato questo tutorial semplice e facile da seguire. E hai fatto funzionare con successo il tuo script 🙂 Fammi sapere la tua esperienza nella sezione commenti qui sotto. A proposito, se in futuro vorrai disabilitare questo script di cambio automatico in background, tutto ciò che devi fare è eliminare quel .change_wallpapers script e rimuovi le quattro righe aggiuntive sul tuo .profile file.


Linux
  1. Come modificare il memory_limit nel file .htaccess

  2. Come leggere la penultima riga in un file usando Bash?

  3. Come riempire un file con FF usando dd?

  4. Come modificare la codifica utilizzata dal mio server SFTP?

  5. Come rimuovere un file senza usare rm?

Come reindirizzare stderr a stdout in Bash

Come modificare lo sfondo della schermata di accesso GDM in Ubuntu

Come modificare lo sfondo della schermata di accesso/blocco in Ubuntu

Come modificare le autorizzazioni dei file utilizzando FileZilla

Come modificare le autorizzazioni dei file

Procedura:un'introduzione all'uso di Git