Quants de vosaltres usen algun «tiling window manager» i segurament després de cert temps ens avorreix el nostre fons de pantalla? És molt molest haver de re-compilar per poder canviar un simple fons de pantalla, o fins i tot també el tornar a córrer "nitrogen" i passar-li un altre paràmetre.
Doncs avui els porto un script en bash, aquest obté una imatge aleatòria de la nostra col·lecció i la posa com a fons de pantalla Canviar Fons pantalla nitrogen, Si descarreguen l'script de aquí no oblidin treure-li l'extensió .txt a l'arxiu i donar-li permisos d'execució
directori = ~ / Imatges function mi_resolucion () {res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `mi_alto =` echo "$ res" | cut -d "x" -f 2` mi_ancho = `echo" $ res "| cut -d "x" -f 1`} function rand_imagen () {imatge = `ls -1 -b -R" $ directori "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` dir_imagen = `find" $ directori "-iname" $ imatge "`} function resolucion_imagen () {rand_imagen imagen_alto = `identify -format"% h "" $ dir_imagen "` imagen_ancho = `identify -format"% w "" $ dir_imagen "`} function proporció () {mi_resolucion resolucion_imagen proporcion_alto = `echo $ imagen_alto / $ mi_alto | bc -l` proporcion_ancho =` echo $ imagen_ancho / $ mi_ancho | bc -l`} function escalar () {proporció if [ `echo" $ proporcion_alto> 1 "| bc` -eq 1 -o` echo "$ proporcion_ancho> 1" | bc` -eq 1]; then nitrogen --set-zoom "$ dir_imagen" else nitrogen --set-centered "$ dir_imagen" fi} escalar exit
Ara ve l'explicació de l'script.
directori = ~ / Imatges // Canviar pel directori en el qual es trobin els seus wallpapers
resolucion_imagen () // Aquesta funció detecta la resolució del nostre monitor, i la guarda en les variables:
el meu_alt // Alt
el meu_ample // Ample
rand_imagen () // Aquesta funció obté una imatge dins de «directori»
imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» | sort -random-sort | head -1`
Exemple:
imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensión" | sort --random-sort | head -1`
resolucion_imagen () // Aquesta funció obté la resolució de la imatge que va obtenir la funció rand_imagen ()
proporció () // Aquesta funció obté la proporció resolución_imagen / resolución_pantalla
escalar () // Aquesta funció escala la imatge si és mes gran que la resolució del nostre monitor i estableix el fons de pantalla
Ara que tenim l'script per assignar-fons de pantalla aleatori a nitrogen (ia més la imatge s'adapta al teu monitor) només ens resta fer que s'executi l'script de tant en tant, això s'aconsegueix fent que s'executi la següent comanda a l'inici
watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script
En aquest cas aquesta comanda s'executa cada 4 segons, notar que ruta_donde_se_encuentra_el_script és la ruta completa on es localitza el script i nom_script és el nom que li van posar a l'script.
Espero que els sigui útil.
Revisaré aquest tal Nitrogen per a un script per a KDE que vull fer 🙂
Per la resta bon post ... jajajaja, excel·lent foto has triat per al post (la de Snoopy LOL !!!)
Jjajajajjajajaja gràcies, en efecte snoopy rifa, jajajjajajajjajaj
Gràcies ..
Gràcias
gràcies!
¿Això no funciona per cinnamon veritat?
no tinc idea de com canviar el fons de pantalla en cinnamon, però el que és segur és que la funció function rand_imagen et serveix per treure una imatge aleatòria, així que només vasta amb passar li $ dir_imagen
deixa investigo
Gracis el modifiqui una mica per a futures generacions ... espero no et molestis
em gustaria saber que opines, no es molt del llenguatge
#! / Bin / bash
# ~ Autor original
#~
# ~ Halonsov: Matemàtic, amant de GNU / LINUX, programador, usuari de Debian i xmonad.
#~
# ~ Referències
#~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
#~
# ~ Ordre per executar l'script cada 120 segons
# ~ Watch -n 120 /home/amem/backup/DataCrunch/Synaptic/AleatorioWallpaper.sh
#~
# ~ Colaboracion
# ~ + AMEM +
# ~ Personalment prefereixo usar-lo una sola vegada per no utilitzar espai
# ~ Agregant al autostart.sh
# ~ /Home/amem/backup/DataCrunch/Synaptic/AleatorioWallpaper.sh &
# ~ Nota personal
# ~ Aquest script va ser realitzat originalment per halonsov.
# ~ Jo el modifiqui perquè només una mica, per executar-lo a l'inici de #CrunchBang!
# ~ La finalitat és que totes aquestes imatges que tens al teu disc puguis veure-les
# ~ De tant en tant, i que s'ajustin a la pantalla segons les seves propietats.
# ~ Per això aquest escript identifica les característiques del teu monitor,
# ~ I les de la imatge o foto del teu «directori»,
# ~ Per així executar nitrogen + un parametre d'escalat o zoom evitant
# ~ Imatges allargades, pixeleadas.
# ~ Si aquest script no satisfà les teves necessitats, pots modificar les seves paràmetres
# ~ Ex. Nitrogen -Set-centered
# ~ Per centrar la imatge sense escalar
# ~ Et recomano estudies el manual d'nitrogen.
#Directori
#Directorio de les imatges que es faran servir com wallpaper, fins i tot els subdirectoris
#Cambiar pel directori en el qual es trobin els seus wallpapers
# Ex. Directori = / home / ... / images
directori = / home / amem / images / Wallpaper
# Resolució de monitor
#Esta funció detecta la resolució del nostre monitor, i la guarda en les variables:
function mi_resolucion ()
{
#Obtenemos la resolució del nostre monitor amb xrandr
res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
#Alto de l'monitor
mi_alto = `echo" $ res »| cut -d «x» -f 2`
#Ancho de l'monitor
mi_ancho = `echo" $ res »| cut -d «x» -f 1`
}
#Imagen aleatòria
#Esta funció s'obté una imatge dins de "directori"
function rand_imagen ()
{
#Obtenemos el nom d'alguna imatge dins de $ directori
imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» | sort -random-sort | head -1`
# IMPORTANT! Si t'adones estem filtrant tots els arxius amb "extensió" .png, .jpg, .jpeg. Afegeix -e ".extensión" segons sigui el cas.
#Exemple:
# Imatge = `ls -1 -b -R« $ directori »| grep -i -i «.png» -i «.jpg» -i «.jpeg» -i «.nueva_extensión» | sort -random-sort | head -1`
#Obtenemos la ruta de $ imatge
dir_imagen = `find« $ directori »-iname« $ imatge »`
}
# Resolució imatge
#Esta funció obté la resolució de la imatge que va obtenir la funció rand_imagen ()
function resolucion_imagen ()
{
rand_imagen
#Obtenemos l'alt de $ imatge
imagen_alto = `identify -format '% h» «$ dir_imagen» `
#Obtenemos l'ample de $ imatge
imagen_ancho = `identify -format '% g'« $ dir_imagen »`
}
#Obtenemos la proporció resolución_imagen / resolución_pantalla
# El resultat d'aquesta divicion lliura un valor més o menys a 1
# Proporció 1 la imatge és més gran que la pantalla
function proporció ()
{
la meva_resolucio
resolucion_imatge
proporcion_alto = `echo $ imagen_alto / $ mi_alto | bc -l`
proporcion_ancho = `echo $ imagen_ancho / $ mi_ancho | bc -l`
}
#Obtenemos la proporció imagen_alto / imagen_ancho
# El resultat d'aquesta divicion lliura un valor més o menys a 1; amens que la imatge es quadrada Oo
# Proporcion_imagen 1, la imatge és més alta que ampla
function proporcionimagen ()
{
resolucion_imatge
proporcionimagen_razon = `echo $ imagen_alto / $ imagen_ancho | bc -l`
}
#Establece el fons de pantalla
#Esta funció modifica els paràmetres de nitrogen segons les propietats de la imatge en relació a l'monitor
#Imagen molt alta o gran que la nostra pantalla Estableix el fons de pantalla escalant la imatge
# -Set-centered centra la imatge sense escalar
# -Set-Scaled omple la pantalla amb la imatge deformada
# -Set-zoom omple la pantalla amb la imatge escalada a la part alta
# -Set-zoom-fill omple la pantalla amb la imatge escalada al llarg
function escalar ()
{
proporció
if [ `tiro« $ proporcion_ancho> 1 "| bc` -eq 1]; then
# Si la resolució de la imatge és més gran que la de la nostra pantalla executar ...
nitrogen -Set-Scaled «$ dir_imagen»
else
if [ `tiro« $ proporcion_alto> 1 "| bc` -eq 1]; then
# Si la resolució de la imatge és més petita que la de la nostra pantalla executar ...
nitrogen -Set-centered «$ dir_imagen»
else
#Cuando la imatge és més petita que la pantalla podem expandir al llarg OAO ample
proporcionimatge
if [ `tiro« $ proporcionimagen_razon> 1 "| bc` -eq 1]; then
# Si l'alçada de la imatge és més petita que la de la nostra pantalla executar ...
nitrogen -Set-zoom «$ dir_imagen»
else
if [ `tiro« $ proporcionimagen_razon <1 "| bc` -eq 1]; then
# Si l'amplada de la imatge és més petita que la de la nostra pantalla executar ...
nitrogen -Set-zoom-fill "$ dir_imagen"
fi
fi
fi
fi
}
escalar
sortir de
Excel·lent. Gràcies.