Mudando o papel de parede periodicamente sob o GNOME 3?

15

Eu uso o Fedora 15 com o GNOME 3 e gostaria que meu papel de parede mudasse periodicamente como é possível com o Windows 7. Seria melhor se ele usasse RSS / Atom ou um diretório especificado.

Eu não encontrei nenhuma ferramenta no repositório. Eu acho que você pode mudar isso com um script e cron, mas eu estou procurando por algo mais elegante.

    
por KovBal 16.06.2011 / 15:31

5 respostas

6

Esta é a solução que você está procurando:

Eu fiz isso; apenas uma versão de teste, mas funciona!

    
por 24.06.2011 / 21:25
19

Salve o seguinte script de shell em algum lugar:

#!/bin/bash

WP_DIR=/home/honeyp0t/wallpapers

cd $WP_DIR
while [ 1 ] 
  do
  set -- * 
  length=$#
  random_num=$((( $RANDOM % ($length) ) + 1)) 

  gsettings set org.gnome.desktop.background picture-uri "file://$WP_DIR/${!random_num}"

  sleep 600 
done

Em seguida, no seu diretório home em .config / autostart, coloque o seguinte em um arquivo chamado wallpaper-changer.desktop

[Desktop Entry]
Name=wallpaper-changer
Exec=/home/sammhe/bin/setbg.sh
Comment=change wallpaper every so often
Hidden=false
Type=Application
X-GNOME-Autostart-enabled=true

Isso mudará seu papel de parede a cada 10 minutos ... ou qualquer valor que você definir no script…

Originalmente, postei isso como um comentário em uma postagem intitulada "Personalizando o shell do GNOME" em Musings de um encanador do sistema operacional.

    
por 16.06.2011 / 20:39
3

Se você preferir usar um cron job em vez de um script de inicialização, veja o que eu fiz. Obrigado a Hubert pela inspiração!

#!/bin/bash

walls_dir=$HOME/.wallpapers
selection=$(find $walls_dir -type f -name "*.jpg" -o -name "*.png" | shuf -n1)
gsettings set org.gnome.desktop.background picture-uri "file://$selection"

Salve o script em algum lugar (por exemplo, $HOME/bin/rotate_bg ), torne-o executável ( chmod +x $HOME/bin/rotate_bg ) e adicione o trabalho cron para executá-lo quantas vezes quiser que seu plano de fundo seja alterado. Execute crontab -e para editar a tabela cron do seu usuário. Aqui está um link descrevendo o formato crontab . A entrada a seguir rotacionará seu plano de fundo a cada 10 minutos:

*0 * * * * $HOME/bin/rotate_bg
    
por 26.05.2014 / 22:26
1

Por alguma razão, não vejo como responder a Hubert Samm, mas achei o link dele útil. Apenas no caso de cair ou você não quiser ler a coisa toda para obter essa resposta em particular, eu adicionei como eu consegui realizar um plano de atualização ao vivo no Gnome 3.

Indo para ~ / .cache / gnome-control / center / backgrounds você encontrará um arquivo com um nome longo (algo como "a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27") que é a versão em cache do arquivo para o qual você definiu o plano de fundo. Se você excluir este arquivo e criar um link simbólico com o mesmo nome para substituí-lo:

$ rm a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27 
$ ln -s /path/to/original/file a4f327082b43572cfa36ad23b5e1fda7be77b6fb6bfe362e4d682fd9c6699f27

depois, à medida que o arquivo original é atualizado, o plano de fundo da área de trabalho é alterado para refletir isso. Eu estou usando essa técnica para garantir que meu plano de fundo XPlanetFX permaneça atualizado. Por exemplo, basta ter uma imagem chamada "background.jpg" e alterar esse arquivo sempre que quiser atualizar o plano de fundo.

Provavelmente, a maneira mais correta de fazer isso seria usar gsettings para alterar o endereço de imagem-uri para apontar diretamente para o arquivo de sua escolha, mas eu escolhi a opção de link simbólico porque não sabia quão persistente era a configuração mudança seria ao usar a interface do usuário para mudar o papel de parede. De qualquer forma, deve funcionar em teoria, no entanto.

Nota: não sei ao certo como não testei, mas há uma boa chance de que, se você alterar seu plano de fundo pela interface do usuário normal, esse nome de arquivo exclusivo será alterado e seu link simbólico não será útil por mais tempo.

    
por 20.06.2011 / 19:22
1

Salve o seguinte script de shell em algum lugar:

#!/bin/bash
while true; do
file='/bin/ls -1 $1 | sort --random-sort | head -1';path='readlink --canonicalize "$dir/$file"';
gsettings set org.gnome.desktop.background picture-uri "file://"$1$path;sleep $2;done

Execute-o usando a sintaxe:

scriptname directoryofpictures howmanyseconds
    
por 08.09.2015 / 01:57