Byt bakgrundsbild automatiskt med kväve

Hur många av er använder en "Takfönsterhanterare" och säkert efter en stund tröttnar vår tapeter oss? Det är väldigt irriterande att behöva kompilera om för att kunna ändra en enkel bakgrund, eller till och med att köra om "kväve" och skicka en annan parameter till den.

Tja idag ger jag dig ett manus i bash, det får en slumpmässig bild från vår samling och lägger den som en bakgrund Byt kvävebakgrund, om du laddar ner skriptet från här glöm inte att ta bort .txt-tillägget från filen och ge det körbehörigheter

katalog = ~ / Bilder fungerar min_upplösning () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `my_high =` echo "$ res" | klipp -d "x" -f 2` my_width = `echo" $ res "| klipp -d "x" -f 1`} funktion rand_image () {image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort - slumpmässig sortering | head -1` image_dir = `hitta" $ katalog "-namn" $ image "`} funktion image_resolution () {rand_image high_image = `identifiera -format"% h "" $ image_dir "` wide_image = `identifiera -format" % w "" $ image_dir "`} funktionsandel () {my_resolution image_resolution height_rate = `echo $ image_high / $ my_high | bc -l` proportion_width =` echo $ image_width / $ my_width | bc -l`} funktion skalär () { proportion om [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; sedan kväve --set-zoom "$ image_dir" annars kväve --set-centrerad "$ image_dir" fi} skala utgång

Nu kommer förklaringen av manuset.
katalog = ~ / bilder // Byt till katalogen där dina bakgrundsbilder finns

bildupplösning () // Denna funktion upptäcker upplösningen på vår bildskärm och sparar den i variablerna:
min_hög //Hög
min_bredd //Bredd

rand_image () // Denna funktion får en bild i "katalog"

image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sortera – slumpmässig sortering | huvud -1 '

VIKTIG! Om du märker att vi filtrerar alla filer med "förlängning" .png, .jpg, .jpeg. Lägg till -e ".extension" efter behov.

Exempelvis:

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

bildupplösning () // Denna funktion erhåller upplösningen för bilden som erhålls med funktionen rand_image ()

andel() // Denna funktion får förhållandet image_resolution / screen_resolution

klättra() // Denna funktion skalar bilden om den är större än upplösningen på vår skärm och ställer in bakgrunden

Nu när vi har skriptet för att tilldela kväve slumpmässig bakgrundsbild (och även bilden anpassar sig till din bildskärm) behöver vi bara göra att skriptet körs så ofta, detta uppnås genom att utföra följande kommando vid start

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

I det här fallet körs det här kommandot var fjärde sekund, notera att sökvägen_var_skriften_is_hittade är hela sökvägen där skriptet finns och skriptnamn är namnet som gavs till skriptet.

Jag hoppas att du tycker att det är användbart.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   KZKG ^ Gaara sade

    Jag kommer att kontrollera detta kväve för ett skript för KDE som jag vill göra :)
    Annars bra inlägg ... hahahaha, utmärkt foto du har valt för inlägget (Snoopy LOL !!!)

    1.    alpj sade

      Jjajajajjajajaja tack, verkligen snoopy tombola, hahajjajajajjajaj

  2.   st0rmt4il sade

    Tack ..

  3.   BREDD sade

    tack

  4.   ferchmetall sade

    tack!

  5.   izzyvp sade

    Detta fungerar inte för kanel, eller hur?

    1.    alpj sade

      Jag har ingen aning om hur jag byter tapet i kanel, men det säkra är att funktionen rand_image fungerar för dig för att få en slumpmässig bild, så du måste bara skicka den $ dir_image
      Låt mig undersöka

  6.   + AMEM + sade

    Tack, jag ändrade det lite för framtida generationer ... Jag hoppas att du inte bryr dig
    Jag skulle vilja veta vad du tycker, jag vet inte mycket om språket

    #! / Bin / bash

    # ~ Originalförfattare
    #~
    # ~ halonsov: Matematiker, GNU / LINUX älskare, programmerare, Debian och xmonad-användare.
    #~
    # ~ Referenser
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Kommando att köra skriptet var 120: e sekund
    # ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Samarbete
    # ~ + AMEM +
    # ~ Personligen föredrar jag att använda den bara en gång för att inte använda utrymme
    # ~ lägger till i autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Personlig anteckning
    # ~ detta manus skapades ursprungligen av halonsov.
    # ~ Jag ändrade det så att bara lite, för att köra det i början av # CrunchBang!
    # ~ Syftet är att alla de bilder som du har på din disk kan se dem
    # ~ så ofta och att de anpassar sig till skärmen efter deras egenskaper.
    # ~ för detta identifierar detta skript egenskaperna för din bildskärm,
    # ~ och de på bilden eller fotot i din «katalog»,
    # ~ för att utföra kväve + en skalning eller zoomparameter som undviks
    # ~ långsträckta, pixelerade bilder.
    # ~ Om detta skript inte passar dina behov kan du ändra dess parametrar
    # ~ Exempelvis kväve - sätecentrerad
    # ~ för att centrera bilden utan att skalas
    # ~ Jag rekommenderar att du studerar kvävehandboken.

    #Katalog
    #Katalog över bilder som ska användas som bakgrund, inklusive underkataloger
    #Byt till katalogen där dina bakgrundsbilder finns
    # T.ex. katalog = / hem / ... / bilder
    katalog = / hem / amem / bilder / Bakgrund

    # Bildskärmsupplösning
    # Den här funktionen upptäcker upplösningen på vår bildskärm och sparar den i variablerna:
    funktion min_upplösning ()
    {
    #Vi får upplösningen på vår bildskärm med xrandr
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' '
    # Skärmens höjd
    my_high = `echo" $ res "| klipp -d "x" -f 2`
    # Skärmbredd
    my_width = `echo" $ res "| klipp -d "x" -f 1`
    }

    #Random Image
    #Denna funktion får en bild i "katalog"
    funktion rand_image ()
    {
    #Vi får namnet på någon bild i $ -katalogen
    image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sortera – slumpmässig sortering | huvud -1 '

    #VIKTIG! Om du märker att vi filtrerar alla filer med "förlängning" .png, .jpg, .jpeg. Lägg till -e ".extension" efter behov.
    #Exempel:
    # image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | sortera – slumpmässig sortering | huvud -1 '

    #Vi får vägen till $ image
    image_dir = `hitta" $ katalog "-namn" $ bild ""
    }

    # Bildupplösning
    #Denna funktion erhåller upplösningen för bilden som erhålls med funktionen rand_imagen ()
    funktion image_resolution ()
    {
    rand_image
    #Vi får höjden på $ image
    high_image = `identifiera -format"% h "" $ image_dir ""
    #Vi får bredden på $ image
    wide_image = `identifiera -format"% w "" $ image_dir ""
    }

    #Vi får förhållandet image_resolution / screen_resolution
    # resultatet av denna division returnerar ett värde som är större eller mindre än 1
    # proportion 1 bilden är större än skärmen
    funktionsproportion ()
    {
    min_upplösning
    bildupplösning
    ratio_high = `echo $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    #Vi får förhållandet image_high / image_width
    # resultatet av denna division returnerar ett värde som är större eller mindre än 1; Om inte bilden är kvadratisk Oo
    # image_proportion 1 bilden är högre än den är bred
    funktion bild andel ()
    {
    bildupplösning
    ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Ställ in bakgrunden
    # Denna funktion ändrar kväveparametrarna i enlighet med bildens egenskaper i förhållande till bildskärmen
    #Bild för hög eller större än vår skärm Ställer in bakgrunden genom att skala bilden
    # –Set-centrerad centrerar den oskalade bilden
    # –Set-skalad fyller skärmen med den snedställda bilden
    # –Set-zoom fyller skärmen med den skalade bilden uppe
    # –Set-zoom-fyllning fyller skärmen med den skalade bilden längs
    skalarfunktion ()
    {
    andel
    om [`echo" $ width_proportion> 1 ″ | bc` -eq 1]; sedan
    #Om bildens upplösning är större än vår skärm, kör ...
    kväve-set-skalad "$ image_dir"
    annars
    om [`echo" $ high_rate> 1 ″ | bc` -eq 1]; sedan
    # Om bildens upplösning är mindre än skärmen, kör ...
    kväve-set-centrerad "$ image_dir"
    annars
    #När bilden är mindre än skärmen kan vi expandera den till längd eller bredd
    bildproportion
    om [`echo« $ proportionimage_reason> 1 ″ | bc` -eq 1]; sedan
    #Om höjden på bilden är mindre än skärmen, kör ...
    kväve-set-zoom "$ image_dir"
    annars
    om [`echo« $ proportionimage_reason <1 "| bc` -eq 1]; då
    #Om bildens bredd är mindre än vår skärm, kör ...
    kväve –set-zoom-fyll "$ image_dir"
    fi
    fi
    fi
    fi
    }

    klättra

    avsluta

    1.    Halonsus V sade

      Utmärkt. Tack.