Automatski promijenite pozadinu pomoću dušika

Koliko vas koristi "Upravitelj prozora za popločavanje" i sigurno će nam nakon nekog vremena dosaditi naša tapeta? Vrlo je neugodno morati ponovo kompajlirati da biste mogli promijeniti jednostavnu pozadinu ili čak ponovo pokrenuti "dušik" i prenijeti mu drugi parametar.

Pa, danas vam donosim skriptu na bashu, ona dobiva slučajnu sliku iz naše kolekcije i stavlja je kao pozadinu Promijenite pozadinu dušika, ako preuzmete skriptu sa ovdje ne zaboravite ukloniti .txt ekstenziju iz datoteke i dati joj dozvole za izvršavanje

direktorij = ~ / Slika funkcija my_resolution () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | cut -d "x" -f 2` my_width = `echo" $ res "| cut -d "x" -f 1`} funkcija rand_image () {image = `ls -1 -b -R" $ direktorij "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort - random-sort | head -1` image_dir = `pronađi" $ direktorij "-iname" $ ​​image "`} funkcija image_resolution () {rand_image high_image = `identify -format"% h "" $ image_dir "` wide_image = `identify -format"% w "" $ image_dir "`} proporcija funkcije () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ my_width | bc -l`} funkcija skalar () {proporcija ako [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; zatim dušik --set-zoom "$ image_dir" ostalo dušik - set-centrirano "$ image_dir" fi} skala izlaz

Sada dolazi objašnjenje scenarija.
direktorij = ~ / Slike // Promijenite u direktorij u kojem se nalaze vaše pozadine

image_resolution () // Ova funkcija otkriva rezoluciju našeg monitora i sprema je u varijable:
my_high // High
moja_širina // Širina

rand_image () // Ova funkcija dobiva sliku unutar "direktorija"

slika = `ls -1 -b -R" $ direktorij "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort –random-sort | glava -1`

BITAN! Ako primijetite da filtriramo sve datoteke s "ekstenzijom" .png, .jpg, .jpeg. Po potrebi dodajte -e ".extention".

Primjer:

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 () // Ova funkcija dobiva rezoluciju slike dobivenu funkcijom rand_image ()

proporcija () // Ova funkcija dobiva omjer image_resolution / screen_resolution

uspon () // Ova funkcija skalira sliku ako je veća od razlučivosti našeg monitora i postavlja pozadinu

Sada kada imamo skriptu za dodjeljivanje nasumičnih pozadina dušiku (a također se i slika prilagođava vašem monitoru), skriptu moramo pokretati svako toliko često, to se postiže izvršavanjem sljedeće naredbe pri pokretanju

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

U ovom slučaju, ova se naredba izvršava svake 4 sekunde, imajte na umu da je path_where_the_script_is_found puna staza gdje se skripta nalazi, a script_name je ime koje je dato skripti.

Nadam se da će vam biti korisno.


9 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   KZKG ^ Gaara rekao je

    Provjerit ću ovaj dušik za skriptu za KDE koju želim napraviti :)
    Inače dobar post ... hahahaha, izvrsna fotografija koju ste izabrali za post (Snoopy LOL !!!)

    1.    alpj rekao je

      Jjajajajjajajajaja hvala, zaista snoopy tombola, hahajjajajajajajaj

  2.   st0rmt4il rekao je

    Hvala ti..

  3.   ŠIRINA rekao je

    hvala

  4.   ferchmetal rekao je

    Hvala!

  5.   izzyvp rekao je

    Ovo ne djeluje za cimet, zar ne?

    1.    alpj rekao je

      Nemam pojma kako promijeniti pozadinu u cimetu, ali sigurna je stvar da vam funkcija rand_image služi za dobivanje slučajne slike, tako da jednostavno morate proći $ dir_image
      Da istražim

  6.   + AMEM + rekao je

    Hvala vam, malo sam ga modificirao za buduće generacije ... Nadam se da se nećete truditi
    Volio bih znati šta mislite, ne znam puno o jeziku

    #! / bin / bash

    # ~ Izvorni autor
    #~
    # ~ halonsov: Matematičar, ljubitelj GNU / LINUX-a, programer, korisnik Debiana i xmonad-a.
    #~
    # ~ Reference
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Naredba za pokretanje skripte svakih 120 sekundi
    # ~ sat -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Saradnja
    # ~ + AMEM +
    # ~ Lično više volim da ga koristim samo jednom kako ne bih koristio prostor
    # ~ dodavanje u autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Lična bilješka
    # ~ ovu skriptu izvorno je napravio halonsov.
    # ~ Izmijenio sam ga tako da ga samo malo, da ga izvedem na početku #CrunchBang!
    # ~ svrha je da ih možete vidjeti sve one slike koje imate na disku
    # ~ svako toliko, i da se prilagode ekranu u skladu sa svojim svojstvima.
    # ~ za ovo ova skripta identificira karakteristike vašeg monitora,
    # ~ i one sa slike ili fotografije iz vašeg «direktorija»,
    # ~ kako bi se izveo dušik + izbjegavanje parametara skaliranja ili zumiranja
    # ~ izdužene, pikselirane slike.
    # ~ Ako ova skripta ne odgovara vašim potrebama, možete izmijeniti njene parametre
    # ~ Npr. Azot - centriran
    # ~ za centriranje slike bez skaliranja
    # ~ Preporučujem vam da proučite priručnik o dušiku.

    #Directory
    #Direktorij slika koji će se koristiti kao pozadina, uključujući poddirektorijume
    #Promijenite se u direktorij u kojem se nalaze vaše pozadine
    # Npr. Direktorij = / home / ... / images
    direktorij = / home / amem / images / Wallpaper

    # Rezolucija monitora
    # Ova funkcija otkriva rezoluciju našeg monitora i sprema je u varijable:
    funkcija my_resolution ()
    {
    # Rezoluciju svog monitora dobivamo pomoću xrandr-a
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
    # Visina monitora
    my_high = `echo" $ res "| izrezati -d "x" -f 2`
    # Širina monitora
    my_width = `echo" $ res "| cut -d "x" -f 1`
    }

    #Random Image
    # Ova funkcija dobiva sliku unutar "direktorija"
    funkcija rand_image ()
    {
    # Dobijamo ime neke slike unutar $ direktorija
    slika = `ls -1 -b -R" $ direktorij "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort –random-sort | glava -1`

    #BITAN! Ako primijetite da filtriramo sve datoteke s "ekstenzijom" .png, .jpg, .jpeg. Po potrebi dodajte -e ".extention".
    #Primjer:
    # image = `ls -1 -b -R" $ direktorij "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".novo_proširenje" | sort –random-sort | glava -1`

    # Dobivamo putanju $ image
    image_dir = `pronađi" $ direktorij "-iname" $ ​​image "`
    }

    # Rezolucija slike
    # Ova funkcija dobiva rezoluciju slike dobivenu funkcijom rand_imagen ()
    funkcija image_resolution ()
    {
    rand_image
    # Dobivamo visinu $ image
    high_image = `identificiraj -format"% h "" $ image_dir "`
    # Dobivamo širinu $ image-a
    image_width = `identificiraj -format"% w "" $ image_dir "`
    }

    # Dobivamo omjer image_resolution / screen_resolution
    # rezultat ove podjele vraća vrijednost veću ili manju od 1
    # proporcija 1 slika je veća od ekrana
    proporcija funkcije ()
    {
    my_resolution
    image_resolution
    high_rate = `echo $ high_image / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    # Dobivamo omjer slika_visina / širina slike
    # rezultat ove podjele vraća vrijednost veću ili manju od 1; Osim ako je slika kvadratna Oo
    # image_proportion 1 slika je viša nego što je široka
    proporcija slike funkcije ()
    {
    image_resolution
    ratio_image_rate = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Podesite pozadinu
    # Ova funkcija mijenja parametre dušika u skladu sa svojstvima slike u odnosu na monitor
    # Slika previsoka ili veća od našeg ekrana Postavlja pozadinu skaliranjem slike
    # –Set-centrirano centrira sliku bez skale
    # –Set-scaled ispunjava zaslon iskrivljenom slikom
    # –Set-zoom ispunjava zaslon umanjenom slikom do vrha
    # –Set-zoom-fill ispunjava zaslon umanjenom slikom
    skalarna funkcija ()
    {
    proporcija
    if [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; onda
    #Ako je razlučivost slike veća od one na našem ekranu, izvršite ...
    azot-skalirano "$ image_dir"
    drugo
    if [`echo" $ high_rate> 1 ″ | bc` -eq 1]; onda
    #Ako je razlučivost slike manja od one na našem ekranu, izvršite ...
    dušik - usredotočen na skup "$ image_dir"
    drugo
    #Kada je slika manja od ekrana, možemo je proširiti na dužinu ili širinu
    proporcija slike
    if [`echo« $ proportionimage_reason> 1 ″ | bc` -eq 1]; onda
    #Ako je visina slike manja od visine našeg ekrana, izvršite ...
    dušik –set-zum "$ image_dir"
    drugo
    if [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; tada
    #Ako je širina slike manja od širine našeg ekrana, izvršite ...
    dušik –postavi-zum-popuni "$ image_dir"
    fi
    fi
    fi
    fi
    }

    uspon

    izlaz

    1.    Halonsus V rekao je

      Odlicno. Hvala ti.