GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer automatiquement l'arrière-plan de GNOME par intervalles à l'aide de BASH

Avez-vous déjà voulu avoir cet arrière-plan automatique changer la fonctionnalité sur votre distribution GNOME Linux ? J'ai raté cette fonctionnalité après être passé de Cinnamon à GNOME 🙁 J'ai recherché des applications dans le centre de logiciels et hélas, je n'en ai trouvé aucune. Cependant, aujourd'hui, je suis heureux de vous faire savoir qu'il existe une solution de contournement à cette fonctionnalité manquante grâce à l'utilisation du langage de script BASH.

Exigence

Pas grand-chose, tout ce dont vous avez besoin est un éditeur de texte pour éditer quelques lignes de code sur le fichier de script. Et la possibilité de créer et d'enregistrer des fichiers texte. C'est tout 🙂 Au cas où vous seriez programmeur, j'ai omis des commentaires (documenté le code) dans le script afin que vous puissiez le comprendre.

Étape 1 :Créer le fichier de script

Ouvrez votre programme d'éditeur de texte préféré et enregistrez le fichier sous .change_wallpapers  dans votre répertoire personnel.

Remarquez le point (.) préfixé au nom du fichier. Nous voulons que ce fichier soit masqué, il est donc important de le préfixer avec un point avant le nom du fichier.\

Ensuite, copiez et collez le script ci-dessous dans votre fichier de script nouvellement créé.

#!/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[*]}

Étape 2 :Modifier le script

​Vous devez saisir votre propre chemin personnalisé dans la variable d'environnement wallpaper_path . Par exemple, si votre répertoire de fonds d'écran (ou d'images) se trouve dans /home/abc/Pictures/Wallpapers, vous devrez modifier cette ligne :export wallpaper_path= à

export wallpaper_path=/home/abc/Pictures/WallpapersDe plus, j'ai ajouté les extensions de fichier image les plus courantes sur la variable de tableau wallpapers . Mais votre format de fichier image préféré a peut-être été oublié. Peut-être que vos images sont au format TIFF ou autre chose. Assurez-vous d'ajouter vous-même ces extensions manquantes. Par exemple, si je veux ajouter la prise en charge de tif, je devrai ajouter cette déclaration juste en dessous

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

Étape 3 :Choisissez l'une des deux options ci-dessous

Choisissez-en un seul… et sautez l'autre. Sinon, vous rencontrerez des problèmes.
​
La première option est si vous voulez que votre fond d'écran change dans l'ordre séquentiel, c'est-à-dire en commençant par la première image et en continuant jusqu'à la dernière. Et puis répétez le même processus encore et encore. Ainsi, vous n'êtes pas coincé avec la dernière image lorsque la boucle est terminée. Copiez et collez le code ci-dessous sur la dernière ligne de votre fichier de script.

Modifier l'arrière-plan dans l'ordre séquentiel

# 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

Changer l'arrière-plan dans un ordre aléatoire

Si vous préférez la randomisation à l'ordre séquentiel où vos fonds d'écran sont affichés au hasard. Copiez et collez le code ci-dessous sur la dernière ligne de votre fichier de 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

Étape 4 :Finalisation

Vos .change_wallpapers  le scénario est terminé. Maintenant, il ne reste plus qu'une chose à faire; démarrer ce script lorsque vous vous connectez.

€‹Pour cela, nous devons ajouter du code sur votre .profile fichier pour démarrer ce script. Si votre éditeur de texte est toujours ouvert, lancez votre fichier .profile et copiez ces quatre lignes de code sur la dernière ligne.

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

Si vous ne trouvez pas votre fichier caché .profile dans la boîte de dialogue ouverte, appuyez sur CTRL + H pour afficher tous les fichiers cachés.

Plus tard, vous pourrez appuyer sur la même combinaison de touches pour désactiver l'affichage des fichiers et dossiers cachés à partir de votre programme de gestion de fichiers.

Une fois que vous avez terminé, redémarrez ou reconnectez-vous à votre session pour que le script entre en vigueur.

Conclusion

J'espère que vous avez trouvé ce tutoriel simple et facile à suivre. Et réussi à faire fonctionner votre script 🙂 Faites-moi part de votre expérience dans la section des commentaires ci-dessous. Au fait, si jamais vous souhaitez désactiver ce script de changement d'arrière-plan automatique à l'avenir, tout ce que vous avez à faire est de supprimer ce .change_wallpapers fichier de script et supprimez ces quatre lignes supplémentaires sur votre .profile dossier.


Linux
  1. Comment remplacer les espaces dans les noms de fichiers à l'aide d'un script bash

  2. Comment parser un fichier CSV dans Bash ?

  3. Comment lire l'avant-dernière ligne d'un fichier avec Bash ?

  4. Comment remplir un fichier avec FF en utilisant dd ?

  5. Comment supprimer un fichier sans utiliser rm ?

Comment rediriger stderr vers stdout dans Bash

Comment changer l'arrière-plan de l'écran de connexion GDM dans Ubuntu

Comment changer l'arrière-plan de l'écran de connexion/verrouillage dans Ubuntu

Comment modifier les autorisations de fichiers à l'aide de FileZilla

Comment modifier les autorisations de fichier

Comment :une introduction à l'utilisation de Git