Automatycznie zmieniaj tapetę za pomocą azotu

Ilu z was korzysta z "Tiling window manager" i na pewno po chwili nasza tapeta nas nudzi? Ponowna kompilacja, aby móc zmienić prostą tapetę, a nawet ponownie uruchomić „azot” i przekazać do niej inny parametr, jest bardzo irytująca.

Cóż, dzisiaj przynoszę wam skrypt w bash, pobiera losowy obraz z naszej kolekcji i umieszcza go jako tapetę Zmień tapetę azotową, jeśli pobierzesz skrypt z tutaj nie zapomnij usunąć rozszerzenia .txt z pliku i nadać mu uprawnienia do wykonywania

directory = ~ / Images function 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`} funkcja rand_image () {obraz = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` image_dir = `find" $ directory "-iname" $ ​​image "` `} function image_resolution () {rand_image high_image =` Identification -format "% h" "$ image_dir" `wide_image =` ident-format -format " % w "" $ image_dir "`} function ratio () {my_resolution image_resolution height_rate = `echo $ image_high / $ my_high | bc -l` ratio_width =` echo $ image_width / $ my_width | bc -l`} function scalar () { proporcja if [`echo" $ stopa_wysokości> 1 "| bc` -eq 1 -o` echo" $ stopa_szerokości> 1 "| bc` -eq 1]; następnie azot --set-zoom "$ image_dir" else azot --set-centered "$ image_dir" fi} wyjdź ze skali

Teraz jest wyjaśnienie skryptu.
katalog = ~ / Obrazy // Przejdź do katalogu, w którym znajdują się Twoje tapety

rozdzielczość obrazu () // Ta funkcja wykrywa rozdzielczość naszego monitora i zapisuje ją w zmiennych:
my_high //Wysoki
my_width //Szerokość

rand_image () // Ta funkcja pobiera obraz w „katalogu”

image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort –random-sort | głowa -1`

WAŻNY! Jeśli zauważysz, filtrujemy wszystkie pliki z „rozszerzeniami” .png, .jpg, .jpeg. Dodaj odpowiednio -e „.extension”.

przykład:

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

rozdzielczość obrazu () // Ta funkcja uzyskuje rozdzielczość obrazu uzyskanego przez funkcję rand_image ()

proporcja() // Ta funkcja pobiera współczynnik image_resolution / screen_resolution

wspinać się() // Ta funkcja skaluje obraz, jeśli jest większy niż rozdzielczość naszego monitora i ustawia tapetę

Teraz, gdy mamy skrypt do przypisywania losowej tapety do azotu (a także obraz dostosowuje się do twojego monitora), musimy tylko co jakiś czas uruchamiać skrypt, osiąga się to wykonując następujące polecenie na początku

watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script

W tym przypadku to polecenie jest wykonywane co 4 sekundy. Należy pamiętać, że ścieżka_gdzie_z_skrypt_is_found to pełna ścieżka, w której znajduje się skrypt, a nazwa_skryptu to nazwa nadana skryptowi.

Mam nadzieję, że uznasz to za przydatne.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   KZKG ^ Gaara powiedział

    Sprawdzę ten azot pod kątem skryptu KDE, który chcę zrobić :)
    W przeciwnym razie dobry post ... hahahaha, świetne zdjęcie, które wybrałeś do postu (Snoopy's LOL !!!)

    1.    Alpj powiedział

      Jjajajajjajajaja dziękuję, rzeczywiście snoopy raffle, hahajjajajajjajaj

  2.   st0rmt4il powiedział

    Dziękuję ..

  3.   SZEROKOŚĆ powiedział

    dzięki

  4.   ferchmetal powiedział

    dziękuję!

  5.   Izzyvp powiedział

    To nie działa na cynamon, prawda?

    1.    Alpj powiedział

      Nie mam pojęcia, jak zmienić tapetę w cynamonie, ale pewne jest to, że funkcja rand_image działa, aby uzyskać losowy obraz, więc musisz go tylko przekazać $ dir_image
      Pozwól mi zbadać

  6.   + AMEM + powiedział

    Dziękuję, trochę go zmodyfikowałem dla przyszłych pokoleń ... Mam nadzieję, że nie zawracasz sobie głowy
    Chciałbym wiedzieć, co myślisz, niewiele wiem o języku

    #! / bin / bash

    # ~ Oryginalny autor
    #~
    # ~ halonsov: matematyk, miłośnik GNU / LINUX, programista, użytkownik Debiana i xmonad.
    #~
    # ~ Referencje
    #~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
    #~
    # ~ Polecenie uruchamiania skryptu co 120 sekund
    # ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
    #~
    # ~ Współpraca
    # ~ + AMEM +
    # ~ Osobiście wolę użyć go tylko raz, aby nie zajmować miejsca
    # ~ dodanie autostart.sh
    # ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
    # ~ Notatka osobista
    # ~ ten skrypt został pierwotnie stworzony przez halonsova.
    # ~ Zmodyfikowałem go tak, że tylko trochę, aby wykonać go na początku #CrunchBang!
    # ~ celem jest to, aby wszystkie obrazy, które masz na dysku, były widoczne
    # ~ co jakiś czas i że dostosowują się do ekranu zgodnie z ich właściwościami.
    # ~ w tym celu ten skrypt identyfikuje cechy twojego monitora,
    # ~ i te z obrazu lub zdjęcia z Twojego «katalogu»,
    # ~ w celu wykonania azotu + z pominięciem parametru skalowania lub powiększenia
    # ~ wydłużone, pikselowane obrazy.
    # ~ Jeśli ten skrypt nie odpowiada Twoim potrzebom, możesz zmodyfikować jego parametry
    # ~ Np. Azot-centrowany
    # ~ aby wyśrodkować obraz bez skalowania
    # ~ Polecam przeczytanie instrukcji azotu.

    #Informator
    #Katalog obrazów do wykorzystania jako tapety, w tym podkatalogi
    # Przejdź do katalogu, w którym znajdują się Twoje tapety
    # Np. Katalog = / home /… / images
    directory = / home / amem / images / Wallpaper

    # Rozdzielczość monitora
    # Ta funkcja wykrywa rozdzielczość naszego monitora i zapisuje ją w zmiennych:
    funkcja my_resolution ()
    {
    # Rozdzielczość naszego monitora uzyskujemy dzięki xrandrowi
    res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' ''
    #Wysokość monitora
    my_high = `echo" $ res "| cut -d "x" -f 2`
    Szerokość monitora
    my_width = `echo" $ res "| cut -d "x" -f 1`
    }

    #Random Image
    # Ta funkcja pobiera obraz w „katalogu”
    funkcja rand_image ()
    {
    # Otrzymujemy nazwę jakiegoś obrazu w katalogu $
    image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort –random-sort | głowa -1`

    #WAŻNY! Jeśli zauważysz, filtrujemy wszystkie pliki z „rozszerzeniami” .png, .jpg, .jpeg. Dodaj odpowiednio -e „.extension”.
    #Przykład:
    # image = `ls -1 -b -R" $ katalog "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | sort –random-sort | głowa -1`

    # Otrzymujemy ścieżkę do $ image
    image_dir = `` znajdź "$ directory" -iname "$ image" `
    }

    # Rozdzielczość obrazu
    # Ta funkcja uzyskuje rozdzielczość obrazu uzyskaną przez funkcję rand_imagen ()
    funkcja image_resolution ()
    {
    rand_image
    # Otrzymujemy wysokość $ image
    high_image = `identyfikacja -format"% h "" $ katalog_obrazu "`
    # Otrzymujemy szerokość $ image
    wide_image = `ident-format -format"% w "" $ katalog_obrazu "`
    }

    # Otrzymujemy stosunek image_resolution / screen_resolution
    # wynik tego dzielenia zwraca wartość większą lub mniejszą niż 1
    # proporcja 1 obraz jest większy niż ekran
    proporcja funkcji ()
    {
    my_resolution
    rozdzielczość obrazu
    ratio_high = `echo $ image_high / $ my_high | bc -l`
    width_proportion = `echo $ width_image / $ my_width | bc -l`
    }

    # Otrzymujemy współczynnik image_high / image_width
    # wynik tego dzielenia zwraca wartość większą lub mniejszą niż 1; Chyba że obraz jest kwadratowy Oo
    # image_proportion 1 obraz jest wyższy niż szeroki
    proporcja obrazu funkcji ()
    {
    rozdzielczość obrazu
    ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
    }

    # Ustaw tapetę
    # Ta funkcja modyfikuje parametry azotu zgodnie z właściwościami obrazu w stosunku do monitora
    # Obraz zbyt wysoki lub większy niż nasz ekran Ustawia tapetę poprzez skalowanie obrazu
    # –Set-centered centruje nieskalowany obraz
    # - Skalowanie zestawu wypełnia ekran wypaczonym obrazem
    # –Set-zoom wypełnia ekran skalowanym obrazem do góry
    # –Set-zoom-fill wypełnia ekran skalowanym obrazem
    funkcja skalarna ()
    {
    proporcja
    if [`echo" $ proporcja_szerokości> 1 ″ | bc` -eq 1]; następnie
    # Jeśli rozdzielczość obrazu jest większa niż rozdzielczość naszego ekranu, wykonaj ...
    azot - skalowany na podstawie ustawienia „$ image_dir”
    więcej
    if [`echo" $ high_rate> 1 ″ | bc` -eq 1]; następnie
    # Jeśli rozdzielczość obrazu jest mniejsza niż rozdzielczość naszego ekranu, wykonaj ...
    azot - wyśrodkowany na ustawieniu „$ image_dir”
    więcej
    # Gdy obraz jest mniejszy niż ekran, możemy go rozszerzyć do długości lub szerokości
    proporcje obrazu
    if [`echo« $ proporcjonalny_przyczyna_obrazu> 1 ″ | bc` -eq 1]; następnie
    # Jeśli wysokość obrazu jest mniejsza niż wysokość naszego ekranu, wykonaj ...
    azot - ustaw powiększenie „$ image_dir”
    więcej
    if [`echo« $ proporcjonalny_przyczyna_obrazu <1 "| bc` -eq 1]; then
    #Jeśli szerokość obrazu jest mniejsza niż szerokość naszego ekranu, wykonaj ...
    azot –set-zoom-fill "$ image_dir"
    fi
    fi
    fi
    fi
    }

    wspinać się

    wyjście

    1.    Halonsus V powiedział

      Doskonałe. Dziękuję.