Bytt bakgrunnsbilde automatisk med nitrogen

Hvor mange av dere bruker en "Tiling Window Manager" og sikkert kjeder bakgrunnen vår oss etter hvert. Det er veldig irriterende å måtte kompilere på nytt for å kunne endre et enkelt bakgrunnsbilde, eller til og med å kjøre “nitrogen” på nytt og sende en annen parameter til den.

Vel i dag gir jeg deg et skript i bash, det får et tilfeldig bilde fra samlingen vår og legger det som bakgrunn Endre Nitrogen Wallpaper, hvis du laster ned skriptet fra her ikke glem å fjerne .txt-utvidelsen fra filen og gi den utføringstillatelser

katalog = ~ / Bilder fungerer my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | klipp -d "x" -f 2` my_width = `ekko" $ res "| klipp -d "x" -f 1`} funksjon rand_image () {image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sorter - tilfeldig-sorter | head -1` image_dir = `finn" $ katalog "-navn" $ image "`} funksjon image_resolution () {image_rand high_image = `identifiser -format"% h "" $ image_dir "` wide_image = `identifiser -format" % w "" $ image_dir "`} funksjonsandel () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ my_width | bc -l`} function scalar () { proporsjon hvis [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; deretter nitrogen - sett-zoom "$ image_dir" ellers nitrogen - sett-sentrert "$ image_dir" fi} skala utgang

Nå kommer forklaringen på manuset.
katalog = ~ / bilder // Bytt til katalogen der bakgrunnsbildene ligger

image_resolution () // Denne funksjonen oppdager skjermoppløsningen, og lagrer den i variablene:
min_høye //Høy
min_bredde //Bredde

rand_image () // Denne funksjonen får et bilde i «katalogen»

image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sorter – tilfeldig-sortering | hodet -1 '

VIKTIG! Hvis du merker at vi filtrerer alle filer med "filtypen" .png, .jpg, .jpeg. Legg til -e ".extension" etter behov.

Eksempel:

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

image_resolution () // Denne funksjonen oppnår oppløsningen til bildet som er oppnådd av funksjonen rand_image ()

proporsjon() // Denne funksjonen får forholdet image_resolution / screen_resolution

klatre() // Denne funksjonen skalerer bildet hvis det er større enn oppløsningen på skjermen og stiller bakgrunnsbildet

Nå som vi har skriptet for å tildele tilfeldig bakgrunn til nitrogen (og også bildet tilpasser seg skjermen din), trenger vi bare å gjøre skriptet kjørt så ofte, dette oppnås ved å utføre følgende kommando ved oppstart

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

I dette tilfellet kjøres denne kommandoen hvert 4. sekund. Vær oppmerksom på at path_where_the_script_is_found er hele banen der skriptet er plassert og script_name er navnet som skriptet får.

Jeg håper du synes det er nyttig.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   KZKG ^ Gaara sa

    Jeg vil sjekke dette nitrogen for et skript for KDE som jeg vil gjøre :)
    Ellers bra innlegg ... hahahaha, utmerket bilde du har valgt til innlegget (Snoopy LOL !!!)

    1.    alpj sa

      Jjajajajjajajaja takk, ja, snoopy tombola, hahajjajajajjajaj

  2.   st0rmt4il sa

    Takk skal du ha..

  3.   BREDDE sa

    Takk

  4.   ferchmetal sa

    takk!

  5.   izzyvp sa

    Dette fungerer ikke for kanel, ikke sant?

    1.    alpj sa

      Jeg aner ikke hvordan jeg skal endre bakgrunnsbilde i kanel, men det er sikkert at funksjonen rand_image fungerer for deg for å få et tilfeldig bilde, så du må bare sende det $ dir_image
      La meg undersøke

  6.   + AMEM + sa

    Takk, jeg endret det litt for fremtidige generasjoner ... Jeg håper du ikke gidder
    Jeg vil gjerne vite hva du synes, jeg vet ikke mye om språket

    #! / Bin / bash

    # ~ Opprinnelig forfatter
    #~
    # ~ halonsov: Matematiker, GNU / LINUX-elsker, programmerer, Debian og xmonad-bruker.
    #~
    # ~ Referanser
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Kommando for å kjøre skriptet hvert 120 sekund
    # ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Samarbeid
    # ~ + AMEM +
    # ~ Personlig foretrekker jeg å bruke den bare en gang for ikke å bruke plass
    # ~ legger til i autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Personlig merknad
    # ~ Dette skriptet ble opprinnelig laget av halonsov.
    # ~ Jeg modifiserte det slik at bare litt, for å utføre det i begynnelsen av #CrunchBang!
    # ~ Hensikten er at alle bildene du har på disken din, kan du se dem
    # ~ så ofte, og at de passer til skjermen i henhold til egenskapene.
    # ~ for dette identifiserer dette skriptet egenskapene til skjermen din,
    # ~ og de av bildet eller bildet av «katalogen»,
    # ~ for å utføre nitrogen + en skalering eller zoomparameter som unngås
    # ~ langstrakte, pixelerte bilder.
    # ~ Hvis dette skriptet ikke passer dine behov, kan du endre parametrene
    # ~ F.eks. Nitrogen-sett-sentrert
    # ~ for å sentrere bildet uten å skalere
    # ~ Jeg anbefaler deg å studere nitrogenhåndboken.

    #Katalog
    #Katalog over bilder som skal brukes som bakgrunn, inkludert underkataloger
    # Bytt til katalogen der bakgrunnsbildene ligger
    # F.eks katalog = / hjem / ... / bilder
    katalog = / hjem / amem / bilder / Bakgrunn

    # Skjermoppløsning
    # Denne funksjonen oppdager skjermoppløsningen og lagrer den i variablene:
    funksjon min_oppløsning ()
    {
    #Vi får oppløsningen til skjermen vår med xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' '
    #Høyde på skjermen
    my_high = `ekko" $ res "| kutt -d "x" -f 2`
    # Skjermbredde
    my_width = `ekko" $ res "| kutt -d "x" -f 1`
    }

    # Tilfeldig bilde
    #Denne funksjonen får et bilde i "katalog"
    funksjon rand_image ()
    {
    #Vi får navnet på et eller annet bilde i $ katalogen
    image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sorter – tilfeldig-sortering | hodet -1 '

    #VIKTIG! Hvis du merker at vi filtrerer alle filer med "utvidelser" .png, .jpg, .jpeg. Legg til -e ".extension" etter behov.
    #Eksempel:
    # image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nye_utvidelse" | sorter – tilfeldig-sortering | hodet -1 '

    #Vi får banen til $ image
    image_dir = `finn" $ katalog "-navn" $ image "
    }

    # Bildeoppløsning
    #Denne funksjonen oppnår oppløsningen til bildet som er oppnådd av rand_imagen () -funksjonen
    funksjon image_resolution ()
    {
    rand_image
    #Vi får høyden på $ image
    high_image = `identifiser -format"% h "" $ image_dir ""
    #Vi får bredden på $ image
    image_width = `identifiser -format"% w "" $ image_dir ""
    }

    #Vi får forholdet image_resolution / screen_resolution
    # resultatet av denne inndelingen returnerer en verdi større eller mindre enn 1
    # proporsjon 1 bildet er større enn skjermen
    funksjonsandel ()
    {
    min_oppløsning
    image_resolution
    ratio_high = `echo $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    #Vi får forholdet image_high / image_width
    # resultatet av denne inndelingen returnerer en verdi større eller mindre enn 1; Med mindre bildet er firkantet Oo
    # image_proportion 1 bildet er høyere enn det er bredt
    funksjon bildeproporsjon ()
    {
    image_resolution
    ratio_image_rate = `echo $ tall_image / $ wide_image | bc -l`
    }

    #Sett bakgrunnsbildet
    # Denne funksjonen endrer nitrogenparametrene i henhold til egenskapene til bildet i forhold til skjermen
    #Bildet er for høyt eller større enn skjermen vår Stiller bakgrunnsbilde ved å skalere bildet
    # –Sett-sentrert sentrerer det uskalerte bildet
    # –Sett-skalert fyller skjermen med det skjevbildet
    # –Set-zoom fyller skjermen med det skalerte bildet til toppen
    # –Set-zoom-fill fyller skjermen med det skalerte bildet sammen
    skalarfunksjon ()
    {
    proporsjon
    hvis [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; deretter
    #Hvis oppløsningen til bildet er større enn skjermen vår, skal du utføre ...
    nitrogen-sett-skalert "$ image_dir"
    ellers
    hvis [`echo" $ high_rate> 1 ″ | bc` -eq 1]; deretter
    # Hvis oppløsningen på bildet er mindre enn skjermen vår, skal du utføre ...
    nitrogen-sett-sentrert "$ image_dir"
    ellers
    #Når bildet er mindre enn skjermen, kan vi utvide det til lengde eller bredde
    bildeproporsjon
    hvis [`ekko« $ proportionimage_reason> 1 ″ | bc` -eq 1]; deretter
    #Hvis høyden på bildet er mindre enn skjermen vår, skal du utføre ...
    nitrogen-sett-zoom "$ image_dir"
    ellers
    hvis [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; da
    #Hvis bredden på bildet er mindre enn skjermen vår, skal du utføre ...
    nitrogen-sett-zoom-fyll "$ image_dir"
    fi
    fi
    fi
    fi
    }

    klatre

    avslutte

    1.    Halonsus V sa

      Utmerket. Takk skal du ha.