Quantos de vocĂȘs usam um "gerenciador de janelas lado a lado" e certamente depois de um tempo nosso papel de parede nos aborrece? Ă muito chato ter que recompilar para poder mudar um papel de parede simples, ou mesmo executar o ânitrogĂȘnioâ novamente e passar outro parĂąmetro para ele.
Bem, hoje eu trago para vocĂȘs um script em bash, ele obtĂ©m uma imagem aleatĂłria de nossa coleção e coloca como papel de parede Alterar papel de parede de nitrogĂȘnio, se vocĂȘ baixar o script de clique aqui nĂŁo se esqueça de remover a extensĂŁo .txt do arquivo e dar a ele permissĂ”es de execução
diretĂłrio = ~ / Função de imagens 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`} função rand_image () {imagem = `ls -1 -b -R" $ diretĂłrio "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort --random-sort | head -1` image_dir = `find" $ directory "-iname" $ ââimage "`} função image_resolution () {rand_image high_image = `identifique -formato"% h "" $ image_dir "` wide_image = `identifique -formato" % w "" $ image_dir "`} função proporção () {my_resolution image_resolution height_proportion = `echo $ image_high / $ my_high | bc -l` proporção_width =` echo $ image_width / $ my_width | bc -l`} função escalar () { proporção if [`echo" $ ratio_high> 1 "| bc` -eq 1 -o` echo" $ ratio_width> 1 "| bc` -eq 1]; entĂŁo nitrogĂȘnio --set-zoom "$ image_dir" else nitrogĂȘnio --set-centered "$ image_dir" fi} saĂda da escala
Agora vem a explicação do script.
diretório = ~ / Imagens // Muda para o diretório onde seus papéis de parede estão localizados
resolução de imagem () // Esta função detecta a resolução de nosso monitor e a salva nas variåveis:
minha_alta //Alta
my_width //Largura
rand_image () // Esta função obtém uma imagem dentro de «diretório»
image = `ls -1 -b -R" $ diretĂłrio "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort ârandom-sort | cabeça -1`
Exemplo:
imagen=`ls -1 -b -R "$directorio" | grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".nueva_extensiĂłn" | sort --random-sort | head -1`
resolução de imagem () // Esta função obtém a resolução da imagem obtida pela função rand_image ()
proporção() // Esta função obtém a proporção image_resolution / screen_resolution
escalar() // Esta função dimensiona a imagem se for maior do que a resolução do nosso monitor e define o papel de parede
Agora que temos o script para atribuir papel de parede aleatĂłrio ao nitrogĂȘnio (e tambĂ©m a imagem se adapta ao seu monitor), sĂł temos que fazer o script rodar de vez em quando, isso Ă© feito executando o seguinte comando na inicialização
watch -n 4 ruta_donde_se_encuentra_el_script/nombre_del_script
Neste caso, este comando Ă© executado a cada 4 segundos, observe que path_where_the_script_is_found Ă© o caminho completo onde o script estĂĄ localizado e script_name Ă© o nome que foi dado ao script.
Eu espero que vocĂȘ ache isso Ăștil.
Vou verificar este NitrogĂȘnio para um script para KDE que desejo fazer :)
Fora isso, bom post ... hahahaha, excelente foto que vocĂȘ escolheu para o post (Snoopy's LOL !!!)
Jjajajajjajajaja obrigado, na verdade rifa snoopy, hahajjajajajjajaj
Obrigado ..
obrigado
obrigado!
Isso nĂŁo funciona para a canela certo?
NĂŁo tenho ideia de como mudar o papel de parede em canela, mas o certo Ă© que a função rand_image serve para vocĂȘ pegar uma imagem aleatĂłria, entĂŁo vocĂȘ sĂł tem que passar $ dir_image
Deixe-me investigar
Obrigado, modifiquei um pouco para as futuras geraçÔes ... Espero que não se incomode
Eu gostaria de saber o que vocĂȘ pensa, nĂŁo sei muito sobre o idioma
#! / Bin / bash
# ~ Autor original
#~
# ~ halonsov: MatemĂĄtico, amante do GNU / LINUX, programador, usuĂĄrio Debian e xmonad.
#~
# ~ ReferĂȘncias
#~ https://blog.desdelinux.net/cambiar-automaticamente-el-fondo-de-pantalla-con-nitrogen/
#~
# ~ Comando para executar o script a cada 120 segundos
# ~ watch -n 120 /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh
#~
# ~ Colaboração
# ~ + AMEM +
# ~ Pessoalmente, prefiro uså-lo apenas uma vez para não ocupar espaço
# ~ adicionando autostart.sh
# ~ /home/amem/backup/DataCrunch/Synaptic/RandomWallpaper.sh &
# ~ Nota pessoal
# ~ este script foi originalmente feito por halonsov.
# ~ Eu modifiquei para que apenas um pouco, para executĂĄ-lo no inĂcio de #CrunchBang!
# ~ o objetivo Ă© que todas as imagens que vocĂȘ tem em seu disco possam vĂȘ-las
# ~ de vez em quando, e que se ajustam Ă tela de acordo com suas propriedades.
# ~ para isso, este script identifica as caracterĂsticas do seu monitor,
# ~ e os da imagem ou foto do seu «diretório»,
# ~ para executar nitrogĂȘnio + um parĂąmetro de escala ou zoom evitando
# ~ imagens alongadas e pixeladas.
# ~ Se este script nĂŁo atender Ă s suas necessidades, vocĂȘ pode modificar seus parĂąmetros
# ~ Por exemplo, nitrogĂȘnio centrado no conjunto
# ~ para centralizar a imagem sem redimensionar
# ~ Eu recomendo que vocĂȘ estude o manual do nitrogĂȘnio.
#DiretĂłrio
#DiretĂłrio de imagens a serem usadas como papel de parede, incluindo subdiretĂłrios
# Mude para o diretório onde seus papéis de parede estão localizados
# Ex: diretório = / home /⊠/ imagens
diretĂłrio = / home / amem / imagens / papel de parede
# Resolução do monitor
#Esta função detecta a resolução do nosso monitor e a salva nas variåveis:
função my_resolution ()
{
# Obtemos a resolução do nosso monitor com o xrandr
res = `xrandr | grep '*' | grep -o -E '[0-9] + x [0-9] +' `
#Altura do monitor
my_high = `echo" $ res "| cut -d "x" -f 2`
# Largura do monitor
minha_largura = `echo" $ res "| cut -d "x" -f 1`
}
#Random Image
#Esta função obtém uma imagem dentro de "diretório"
função rand_image ()
{
# Recebemos o nome de alguma imagem dentro de $ diretĂłrio
image = `ls -1 -b -R" $ diretĂłrio "| grep -i -e ".png" -e ".jpg" -e ".jpeg" | sort ârandom-sort | cabeça -1`
#IMPORTANTE! Se vocĂȘ notar que estamos filtrando todos os arquivos com "extensĂŁo" .png, .jpg, .jpeg. Adicione -e ".extension" conforme apropriado.
#Exemplo:
# image = `ls -1 -b -R" $ diretĂłrio "| grep -i -e ".png" -e ".jpg" -e ".jpeg" -e ".new_extension" | sort ârandom-sort | cabeça -1`
# Recebemos o caminho de $ image
image_dir = `find" $ directory "-iname" $ ââimage "`
}
# Resolução de imagem
#Esta função obtém a resolução da imagem obtida pela função rand_imagen ()
function image_resolution ()
{
rand_image
# Conseguimos a altura de $ image
high_image = `identifique -formato"% h "" $ image_dir "`
# Conseguimos a largura de $ imagem
image_width = `identifique -formato"% w "" $ image_dir "`
}
# Recebemos a proporção image_resolution / screen_resolution
# o resultado desta divisĂŁo retorna um valor maior ou menor que 1
# proporção 1 a imagem é maior que a tela
proporção de função ()
{
minha_resolução
resolução de imagem
ratio_high = `echo $ image_high / $ my_high | bc -l`
width_proportion = `echo $ width_image / $ my_width | bc -l`
}
# Conseguimos a proporção image_high / image_width
# o resultado desta divisĂŁo retorna um valor maior ou menor que 1; A menos que a imagem seja quadrada Oo
# image_proportion 1 a imagem Ă© mais alta do que larga
função proporção da imagem ()
{
resolução de imagem
ratio_image_reason = `echo $ tall_image / $ wide_image | bc -l`
}
#Defina o papel de parede
# Esta função modifica os parĂąmetros de nitrogĂȘnio de acordo com as propriedades da imagem em relação ao monitor
#Imagem muito alta ou maior que a nossa tela Define o papel de parede ao dimensionar a imagem
# âSet-centered centra a imagem fora de escala
# âSet-scaled preenche a tela com a imagem distorcida
# âSet-zoom preenche a tela com a imagem dimensionada para o topo
# âSet-zoom-fill preenche a tela com a imagem dimensionada junto
função escalar ()
{
proporção
if [`echo" $ width_proportion> 1 âł | bc` -eq 1]; entĂŁo
#Se a resolução da imagem for maior que a da nossa tela, execute ...
nitrogĂȘnio âset-scaled "$ image_dir"
outro
if [`echo" $ high_rate> 1 âł | bc` -eq 1]; entĂŁo
# Se a resolução da imagem for menor que a de nossa tela, execute ...
nitrogĂȘnio âset-centered "$ image_dir"
outro
#Quando a imagem Ă© menor do que a tela, podemos expandi-la para comprimento ou largura
proporção da imagem
if [`echo« $ proporçãoimage_reason> 1 Ⳡ| bc` -eq 1]; então
#Se a altura da imagem for menor que a da nossa tela, execute ...
nitrogĂȘnio âset-zoom "$ image_dir"
outro
if [`echo« $ proporçãoimage_reason <1 "| bc` -eq 1]; então
#Se a largura da imagem for menor que a da tela, execute ...
nitrogĂȘnio âset-zoom-fill "$ image_dir"
fi
fi
fi
fi
}
escalar
saĂda
Excelente. Obrigado.