Canviar automàticament el fons de pantalla amb Nitrogen

Quants de vosaltres usen algun «tiling window manager» i segurament després de cert temps ens avorreix el nostre fons de pantalla? És molt molest haver de re-compilar per poder canviar un simple fons de pantalla, o fins i tot també el tornar a córrer "nitrogen" i passar-li un altre paràmetre.

Doncs avui els porto un script en bash, aquest obté una imatge aleatòria de la nostra col·lecció i la posa com a fons de pantalla Canviar Fons pantalla nitrogen, Si descarreguen l'script de aquí no oblidin treure-li l'extensió .txt a l'arxiu i donar-li permisos d'execució

directori = ~ / Imatges function mi_resolucion () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `mi_alto =` echo "$ res" | cut -d "x" -f 2` mi_ancho = `echo" $ res "| cut -d "x" -f 1`} function rand_imagen () {imatge = `ls -1 -b -R" $ directori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` dir_imagen = `find" $ directori "-iname" $ ​​imatge "`} function resolucion_imagen () {rand_imagen imagen_alto = `identify -format"% h "" $ dir_imagen "` imagen_ancho = `identify -format"% w "" $ dir_imagen "`} function proporció () {mi_resolucion resolucion_imagen proporcion_alto = `echo $ imagen_alto / $ mi_alto | bc -l` proporcion_ancho =` echo $ imagen_ancho / $ mi_ancho | bc -l`} function escalar () {proporció if [ `echo" $ proporcion_alto> 1 "| bc` -eq 1 -o` echo "$ proporcion_ancho> 1" | bc` -eq 1]; then nitrogen --set-zoom "$ dir_imagen" else nitrogen --set-centered "$ dir_imagen" fi} escalar exit

Ara ve l'explicació de l'script.
directori = ~ / Imatges // Canviar pel directori en el qual es trobin els seus wallpapers

resolucion_imagen () // Aquesta funció detecta la resolució del nostre monitor, i la guarda en les variables:
el meu_alt // Alt
el meu_ample // Ample

rand_imagen () // Aquesta funció obté una imatge dins de «directori»

imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» | sort -random-sort | head -1`

IMPORTANT! Si t'adones estem filtrant tots els arxius amb "extensió" .png, .jpg, .jpeg. Afegeix -e ".extensión" segons sigui el 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`

resolucion_imagen () // Aquesta funció obté la resolució de la imatge que va obtenir la funció rand_imagen ()

proporció () // Aquesta funció obté la proporció resolución_imagen / resolución_pantalla

escalar () // Aquesta funció escala la imatge si és mes gran que la resolució del nostre monitor i estableix el fons de pantalla

Ara que tenim l'script per assignar-fons de pantalla aleatori a nitrogen (ia més la imatge s'adapta al teu monitor) només ens resta fer que s'executi l'script de tant en tant, això s'aconsegueix fent que s'executi la següent comanda a l'inici

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

En aquest cas aquesta comanda s'executa cada 4 segons, notar que ruta_donde_se_encuentra_el_script és la ruta completa on es localitza el script i nom_script és el nom que li van posar a l'script.

Espero que els sigui útil.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   KZKG ^ Gaara va dir

    Revisaré aquest tal Nitrogen per a un script per a KDE que vull fer 🙂
    Per la resta bon post ... jajajaja, excel·lent foto has triat per al post (la de Snoopy LOL !!!)

    1.    alpj va dir

      Jjajajajjajajaja gràcies, en efecte snoopy rifa, jajajjajajajjajaj

  2.   st0rmt4il va dir

    Gràcies ..

  3.   ANXO va dir

    Gràcias

  4.   ferxometal va dir

    gràcies!

  5.   izzyvp va dir

    ¿Això no funciona per cinnamon veritat?

    1.    alpj va dir

      no tinc idea de com canviar el fons de pantalla en cinnamon, però el que és segur és que la funció function rand_imagen et serveix per treure una imatge aleatòria, així que només vasta amb passar li $ dir_imagen
      deixa investigo

  6.   + AMEM + va dir

    Gracis el modifiqui una mica per a futures generacions ... espero no et molestis
    em gustaria saber que opines, no es molt del llenguatge

    #! / Bin / bash

    # ~ Autor original
    #~
    # ~ Halonsov: Matemàtic, amant de GNU / LINUX, programador, usuari de Debian i xmonad.
    #~
    # ~ Referències
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Ordre per executar l'script cada 120 segons
    # ~ Watch -n 120 /home/amem/backup/DataCrunch/Synaptic/AleatorioWallpaper.sh
    #~
    # ~ Colaboracion
    # ~ + AMEM +
    # ~ Personalment prefereixo usar-lo una sola vegada per no utilitzar espai
    # ~ Agregant al autostart.sh
    # ~ /Home/amem/backup/DataCrunch/Synaptic/AleatorioWallpaper.sh &
    # ~ Nota personal
    # ~ Aquest script va ser realitzat originalment per halonsov.
    # ~ Jo el modifiqui perquè només una mica, per executar-lo a l'inici de #CrunchBang!
    # ~ La finalitat és que totes aquestes imatges que tens al teu disc puguis veure-les
    # ~ De tant en tant, i que s'ajustin a la pantalla segons les seves propietats.
    # ~ Per això aquest escript identifica les característiques del teu monitor,
    # ~ I les de la imatge o foto del teu «directori»,
    # ~ Per així executar nitrogen + un parametre d'escalat o zoom evitant
    # ~ Imatges allargades, pixeleadas.
    # ~ Si aquest script no satisfà les teves necessitats, pots modificar les seves paràmetres
    # ~ Ex. Nitrogen -Set-centered
    # ~ Per centrar la imatge sense escalar
    # ~ Et recomano estudies el manual d'nitrogen.

    #Directori
    #Directorio de les imatges que es faran servir com wallpaper, fins i tot els subdirectoris
    #Cambiar pel directori en el qual es trobin els seus wallpapers
    # Ex. Directori = / home / ... / images
    directori = / home / amem / images / Wallpaper

    # Resolució de monitor
    #Esta funció detecta la resolució del nostre monitor, i la guarda en les variables:
    function mi_resolucion ()
    {
    #Obtenemos la resolució del nostre monitor amb xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
    #Alto de l'monitor
    mi_alto = `echo" $ res »| cut -d «x» -f 2`
    #Ancho de l'monitor
    mi_ancho = `echo" $ res »| cut -d «x» -f 1`
    }

    #Imagen aleatòria
    #Esta funció s'obté una imatge dins de "directori"
    function rand_imagen ()
    {
    #Obtenemos el nom d'alguna imatge dins de $ directori
    imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» | sort -random-sort | head -1`

    # IMPORTANT! Si t'adones estem filtrant tots els arxius amb "extensió" .png, .jpg, .jpeg. Afegeix -e ".extensión" segons sigui el cas.
    #Exemple:
    # Imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» -i «.nueva_extensión» | sort -random-sort | head -1`

    #Obtenemos la ruta de $ imatge
    dir_imagen = `find« $ directori »-iname« $ imatge »`
    }

    # Resolució imatge
    #Esta funció obté la resolució de la imatge que va obtenir la funció rand_imagen ()
    function resolucion_imagen ()
    {
    rand_imagen
    #Obtenemos l'alt de $ imatge
    imagen_alto = `identify -format '% h» «$ dir_imagen» `
    #Obtenemos l'ample de $ imatge
    imagen_ancho = `identify -format '% g'« $ dir_imagen »`
    }

    #Obtenemos la proporció resolución_imagen / resolución_pantalla
    # El resultat d'aquesta divicion lliura un valor més o menys a 1
    # Proporció 1 la imatge és més gran que la pantalla
    function proporció ()
    {
    la meva_resolucio
    resolucion_imatge
    proporcion_alto = `echo $ imagen_alto / $ mi_alto | bc -l`
    proporcion_ancho = `echo $ imagen_ancho / $ mi_ancho | bc -l`
    }

    #Obtenemos la proporció imagen_alto / imagen_ancho
    # El resultat d'aquesta divicion lliura un valor més o menys a 1; amens que la imatge es quadrada Oo
    # Proporcion_imagen 1, la imatge és més alta que ampla
    function proporcionimagen ()
    {
    resolucion_imatge
    proporcionimagen_razon = `echo $ imagen_alto / $ imagen_ancho | bc -l`
    }

    #Establece el fons de pantalla
    #Esta funció modifica els paràmetres de nitrogen segons les propietats de la imatge en relació a l'monitor
    #Imagen molt alta o gran que la nostra pantalla Estableix el fons de pantalla escalant la imatge
    # -Set-centered centra la imatge sense escalar
    # -Set-Scaled omple la pantalla amb la imatge deformada
    # -Set-zoom omple la pantalla amb la imatge escalada a la part alta
    # -Set-zoom-fill omple la pantalla amb la imatge escalada al llarg
    function escalar ()
    {
    proporció
    if [ `tiro« $ proporcion_ancho> 1 "| bc` -eq 1]; then
    # Si la resolució de la imatge és més gran que la de la nostra pantalla executar ...
    nitrogen -Set-Scaled «$ dir_imagen»
    else
    if [ `tiro« $ proporcion_alto> 1 "| bc` -eq 1]; then
    # Si la resolució de la imatge és més petita que la de la nostra pantalla executar ...
    nitrogen -Set-centered «$ dir_imagen»
    else
    #Cuando la imatge és més petita que la pantalla podem expandir al llarg OAO ample
    proporcionimatge
    if [ `tiro« $ proporcionimagen_razon> 1 "| bc` -eq 1]; then
    # Si l'alçada de la imatge és més petita que la de la nostra pantalla executar ...
    nitrogen -Set-zoom «$ dir_imagen»
    else
    if [ `tiro« $ proporcionimagen_razon <1 "| bc` -eq 1]; then
    # Si l'amplada de la imatge és més petita que la de la nostra pantalla executar ...
    nitrogen -Set-zoom-fill "$ dir_imagen"
    fi
    fi
    fi
    fi
    }

    escalar

    sortir de

    1.    Halons V va dir

      Excel·lent. Gràcies.