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`
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.
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 !!!)
Jjajajajjajajaja dziękuję, rzeczywiście snoopy raffle, hahajjajajajjajaj
Dziękuję ..
dzięki
dziękuję!
To nie działa na cynamon, prawda?
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ć
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
Doskonałe. Dziękuję.