Altere automaticamente o papel de parede com nitrogĂȘnio

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`

IMPORTANTE! Se vocĂȘ notar que estamos filtrando todos os arquivos com "extensĂŁo" .png, .jpg, .jpeg. Adicione -e ".extension" conforme apropriado.

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.


Deixe um comentĂĄrio

Seu endereço de email não serå publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsåvel pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentĂĄrios.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento vocĂȘ pode limitar, recuperar e excluir suas informaçÔes.

  1.   KZKG ^ Gaara dito

    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 !!!)

    1.    alpj dito

      Jjajajajjajajaja obrigado, na verdade rifa snoopy, hahajjajajajjajaj

  2.   st0rmt4il dito

    Obrigado ..

  3.   LARGURA dito

    obrigado

  4.   ferchmetal dito

    obrigado!

  5.   Izzyvp dito

    Isso nĂŁo funciona para a canela certo?

    1.    alpj dito

      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

  6.   + AMEM + dito

    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

    1.    Halonsus V dito

      Excelente. Obrigado.