Changer automatiquement le papier peint avec de l'azote

Combien d'entre vous utilisent un "gestionnaire de fenêtres de carrelage" et sûrement après un certain temps notre papier peint nous ennuie? Il est très ennuyeux d'avoir à recompiler pour pouvoir changer un simple fond d'écran, ou même de relancer «nitrogène» et de lui passer un autre paramètre.

Eh bien, aujourd'hui, je vous apporte un script bash, il obtient une image aléatoire de notre collection et la met en fond d'écran Changer le papier peint azote, si vous téléchargez le script depuis ici ! n'oubliez pas de supprimer l'extension .txt du fichier et de lui donner les autorisations d'exécution

directory = ~ / Images fonction ma_résolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | cut -d "x" -f 2` ma_largeur = `echo" $ res "| cut -d "x" -f 1`} function rand_image () {image = `ls -1 -b -R" $ répertoire "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | tri - tri aléatoire | head -1` image_dir = `find" $ directory "-iname" $ ​​image "`} function image_resolution () {rand_image high_image = `identifier -format"% h "" $ image_dir "` wide_image = `identifier -format" % w "" $ image_dir "`} function proportion () {ma_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ ma_largeur | bc -l`} fonction scalaire () { proportion if [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; puis azote --set-zoom "$ image_dir" else azote --set-centré "$ image_dir" fi} sortie de l'échelle

Vient maintenant l'explication du script.
répertoire = ~ / Images // Passez au répertoire où se trouvent vos fonds d'écran

résolution de l'image () // Cette fonction détecte la résolution de notre moniteur, et la sauvegarde dans les variables:
ma_haute //Haute
ma_largeur //Largeur

rand_image () // Cette fonction récupère une image dans "répertoire"

image = `ls -1 -b -R" $ répertoire "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | tri - tri aléatoire | tête -1`

IMPORTANT! Si vous remarquez que nous filtrons tous les fichiers avec "extension" .png, .jpg, .jpeg. Ajoutez -e ".extension" selon le cas.

exemple:

imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensión" | sort --random-sort | head -1`

résolution de l'image () // Cette fonction obtient la résolution de l'image obtenue par la fonction rand_image ()

proportion() // Cette fonction obtient le rapport résolution_image / résolution_écran

montée() // Cette fonction met à l'échelle l'image si elle est plus grande que la résolution de notre moniteur et définit le fond d'écran

Maintenant que nous avons le script pour attribuer un fond d'écran aléatoire à azote (et que l'image s'adapte à votre moniteur), nous devons seulement exécuter le script de temps en temps, ceci est réalisé en exécutant la commande suivante au démarrage

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

Dans ce cas, cette commande est exécutée toutes les 4 secondes, notez que path_where_the_script_is_found est le chemin complet où se trouve le script et script_name est le nom qui a été donné au script.

J'espère que tu trouves cela utile.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   KZKG ^ Gaara dit

    Je vais vérifier cet azote pour un script KDE que je veux faire :)
    Sinon bon post ... hahahaha, excellente photo que vous avez choisie pour le post (Snoopy's LOL !!!)

    1.    alpj dit

      Jjajajajjajajaja merci, en effet tirage au sort snoopy, hahahahajajajjajaj

  2.   st0rmt4il dit

    Merci ..

  3.   LARGEUR dit

    merci

  4.   ferchmétal dit

    merci!

  5.   izzyvp dit

    Cela ne fonctionne pas pour la cannelle, non?

    1.    alpj dit

      Je ne sais pas comment changer le fond d'écran en cannelle, mais la chose sûre est que la fonction rand_image vous sert à prendre une image aléatoire, il vous suffit donc de la passer
      Laisse moi enquêter

  6.   + AMEM + dit

    Merci, je l'ai un peu modifié pour les générations futures ... j'espère que vous ne vous embêtez pas
    J'aimerais savoir ce que tu en penses, je ne connais pas grand chose à la langue

    #! / Bin / bash

    # ~ Auteur original
    #~
    # ~ halonsov: mathématicien, amateur de GNU / LINUX, programmeur, utilisateur Debian et xmonad.
    #~
    # ~ Références
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Commande pour exécuter le script toutes les 120 secondes
    # ~ montre -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Collaboration
    # ~ + AMEM +
    # ~ Personnellement je préfère l'utiliser une seule fois pour ne pas utiliser d'espace
    # ~ ajout dans autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Note personnelle
    # ~ ce script a été créé à l'origine par halonsov.
    # ~ Je l'ai modifié pour que seulement un peu, pour l'exécuter au début de #CrunchBang!
    # ~ le but est que toutes ces images que vous avez sur votre disque puissent les voir
    # ~ de temps en temps, et qu'ils s'adaptent à l'écran en fonction de leurs propriétés.
    # ~ pour cela ce script identifie les caractéristiques de votre moniteur,
    # ~ et ceux de l'image ou de la photo de votre «répertoire»,
    # ~ pour exécuter l'azote + un paramètre de mise à l'échelle ou de zoom évitant
    # ~ Images pixellisées allongées.
    # ~ Si ce script ne répond pas à vos besoins, vous pouvez modifier ses paramètres
    # ~ Par exemple, centré sur l'azote
    # ~ pour centrer l'image sans mise à l'échelle
    # ~ Je vous recommande d'étudier le manuel de l'azote.

    #Annuaire
    #Répertoire d'images à utiliser comme fond d'écran, y compris les sous-répertoires
    #Changez vers le répertoire où se trouvent vos fonds d'écran
    # Exemple: répertoire = / home /… / images
    directory = / home / amem / images / Fond d'écran

    # Résolution du moniteur
    # Cette fonction détecte la résolution de notre moniteur, et la sauvegarde dans les variables:
    fonction ma_résolution ()
    {
    #Nous obtenons la résolution de notre moniteur avec xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
    #Hauteur du moniteur
    my_high = `echo" $ res "| couper -d "x" -f 2`
    # Largeur du moniteur
    ma_largeur = `echo" $ res "| couper -d "x" -f 1`
    }

    #Random Image
    # Cette fonction récupère une image dans "répertoire"
    fonction rand_image ()
    {
    #Nous obtenons le nom d'une image dans le répertoire $
    image = `ls -1 -b -R" $ répertoire "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | tri - tri aléatoire | tête -1`

    #IMPORTANT! Si vous remarquez que nous filtrons tous les fichiers avec "extension" .png, .jpg, .jpeg. Ajoutez -e ".extension" selon le cas.
    #Exemple:
    # image = `ls -1 -b -R" $ répertoire "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | tri - tri aléatoire | tête -1`

    #Nous obtenons le chemin de $ image
    image_dir = `trouver" $ répertoire "-iname" $ ​​image "`
    }

    # Résolution de l'image
    # Cette fonction obtient la résolution de l'image obtenue par la fonction rand_imagen ()
    fonction image_resolution ()
    {
    rand_image
    #Nous obtenons la hauteur de $ image
    high_image = `identifier -format"% h "" $ rép_image "`
    #Nous obtenons la largeur de $ image
    wide_image = `identifier -format"% w "" $ rép_image "`
    }

    #On obtient le rapport résolution_image / résolution_écran
    # le résultat de cette division renvoie une valeur supérieure ou inférieure à 1
    # proportion 1 l'image est plus grande que l'écran
    proportion de fonction ()
    {
    ma_résolution
    résolution de l'image
    ratio_high = `echo $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    #Nous obtenons le rapport image_high / image_width
    # le résultat de cette division renvoie une valeur supérieure ou inférieure à 1; Sauf si l'image est carrée Oo
    # image_proportion 1 l'image est plus haute que large
    fonction proportion d'image ()
    {
    résolution de l'image
    ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
    }

    #Définir le fond d'écran
    # Cette fonction modifie les paramètres azote en fonction des propriétés de l'image par rapport au moniteur
    #Image trop haute ou plus grande que notre écran Définit le fond d'écran en redimensionnant l'image
    # - Centré sur l'ensemble centre l'image non mise à l'échelle
    # –Set-scaled remplit l'écran avec l'image déformée
    # –Set-zoom remplit l'écran avec l'image mise à l'échelle vers le haut
    # –Set-zoom-fill remplit l'écran avec l'image mise à l'échelle le long
    fonction scalaire ()
    {
    proportion
    if [`echo" $ largeur_proportion> 1 ″ | bc` -eq 1]; puis
    #Si la résolution de l'image est supérieure à celle de notre écran, exécutez ...
    azote - mise à l'échelle "$ image_dir"
    d'autre
    if [`echo" $ high_rate> 1 ″ | bc` -eq 1]; puis
    #Si la résolution de l'image est inférieure à celle de notre écran, exécutez ...
    azote - centré sur un ensemble "$ image_dir"
    d'autre
    #Lorsque l'image est plus petite que l'écran, nous pouvons l'étendre en longueur ou en largeur
    proportion d'image
    if [`echo« $ proportionimage_reason> 1 ″ | bc` -eq 1]; puis
    #Si la hauteur de l'image est inférieure à celle de notre écran, exécutez ...
    azote –set-zoom "$ image_dir"
    d'autre
    if [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; alors
    #Si la largeur de l'image est inférieure à celle de notre écran, exécutez ...
    azote –set-zoom-fill "$ image_dir"
    fi
    fi
    fi
    fi
    }

    grimper

    sortie

    1.    Halonsus V dit

      Excellent. Je vous remercie.