Mudando periodicamente o papel de parede no GNOME 3?
15
Eu uso o Fedora 15 com GNOME 3 e gostaria que meu papel de parede mudasse periodicamente, como é possível no Windows 7. Seria o melhor se ele pudesse usar RSS / Atom ou um diretório especificado.
Não encontrei nenhuma ferramenta no repositório. Eu acho que você pode alterá-lo com um script e cron, mas estou procurando algo mais elegante.
#!/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 seu diretório pessoal, 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 ...
Não consigo encontrar nada sobre como alterar o papel de parede ou Hubert Samm no seu link. Você poderia ser mais específico?
KovBal
Ou você pode simplesmente anote aqui :) (Eu não verifiquei o seu nome, desculpe :))
KovBal
1
Vale ressaltar que você também pode querer definir o seguinte pictures-options:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Daniel Quinn
isso não funciona para o gnome 2, certo?
Vicfred
O que "set - *" faz exatamente?
SergioAraujo
3
Se você preferir usar um trabalho cron em vez de um script init, aqui está o que eu fiz. Agradecimentos 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 crontrabalho para executá-lo quantas vezes quiser que seu plano de fundo seja alterado. Execute crontab -epara editar a crontabela para seu usuário. Aqui está um link que descreve o formato crontab . A entrada a seguir alternará seu plano de fundo a cada 10 minutos:
Você está incorreto aqui. O sono não é uma espera ocupada
Art Gertner
se você tiver uma citação, mudarei minha resposta #
Nathan Wallace
da mesma fonte que eu tenho ligado acima: The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days. Por exemplo, o processo não é chamado e não desperdiça ciclos da CPU. Também de Busy Waiting no Wiki :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Art Gertner
1
Por alguma razão, não vejo uma maneira de responder a Hubert Samm, mas achei o link útil. Caso isso ocorra, ou você não queira ler a coisa toda para obter essa resposta específica, adicionei como consegui obter um plano de atualização ao vivo no Gnome 3.
Ao acessar ~ / .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 seu plano de fundo. Se você excluir este arquivo e criar um link simbólico com o mesmo nome para substituí-lo:
então, conforme o arquivo original for atualizado, o plano de fundo da área de trabalho será alterado para refletir isso. Estou usando esta técnica para garantir que meu plano de fundo do XPlanetFX permaneça atualizado. Por exemplo, basta ter uma imagem chamada "background.jpg" e alterar esse arquivo sempre que desejar atualizar o plano de fundo.
Provavelmente, a maneira mais correta de fazer isso seria usar gsettings para alterar o endereço de figura-uri para apontar diretamente para o arquivo de sua escolha, mas eu escolhi a opção de link simbólico porque não sabia o quão persistente seria a alteração na configuração. ao usar a interface do usuário para alterar o papel de parede. De qualquer maneira, no entanto, deve funcionar em teoria.
Nota: Não sei ao certo porque não o testei, mas há uma boa chance de que, se você alterar seu plano de fundo por meio da interface normal, esse nome de arquivo único e longo será alterado e seu link simbólico não será mais útil .
pictures-options
:gsettings set org.gnome.desktop.background picture-options '<zoom|centered|none|scaled|spanned|stretched|wallpaper|zoom>'
Se você preferir usar um trabalho cron em vez de um script init, aqui está o que eu fiz. Agradecimentos a Hubert pela inspiração!
Salve o script em algum lugar (por exemplo
$HOME/bin/rotate_bg
), torne-o executável (chmod +x $HOME/bin/rotate_bg
) e adicione ocron
trabalho para executá-lo quantas vezes quiser que seu plano de fundo seja alterado. Executecrontab -e
para editar acron
tabela para seu usuário. Aqui está um link que descreve o formato crontab . A entrada a seguir alternará seu plano de fundo a cada 10 minutos:fonte
The sleep instruction suspends the calling process for at least the specified number of seconds (the default), minutes, hours or days
. Por exemplo, o processo não é chamado e não desperdiça ciclos da CPU. Também de Busy Waiting no Wiki :Busy-waiting itself can be made much less wasteful by using a delay function (e.g., sleep()) found in most operating systems. This puts a thread to sleep for a specified time, during which the thread will waste no CPU time
Por alguma razão, não vejo uma maneira de responder a Hubert Samm, mas achei o link útil. Caso isso ocorra, ou você não queira ler a coisa toda para obter essa resposta específica, adicionei como consegui obter um plano de atualização ao vivo no Gnome 3.
Ao acessar ~ / .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 seu plano de fundo. Se você excluir este arquivo e criar um link simbólico com o mesmo nome para substituí-lo:
então, conforme o arquivo original for atualizado, o plano de fundo da área de trabalho será alterado para refletir isso. Estou usando esta técnica para garantir que meu plano de fundo do XPlanetFX permaneça atualizado. Por exemplo, basta ter uma imagem chamada "background.jpg" e alterar esse arquivo sempre que desejar atualizar o plano de fundo.
Provavelmente, a maneira mais correta de fazer isso seria usar gsettings para alterar o endereço de figura-uri para apontar diretamente para o arquivo de sua escolha, mas eu escolhi a opção de link simbólico porque não sabia o quão persistente seria a alteração na configuração. ao usar a interface do usuário para alterar o papel de parede. De qualquer maneira, no entanto, deve funcionar em teoria.
Nota: Não sei ao certo porque não o testei, mas há uma boa chance de que, se você alterar seu plano de fundo por meio da interface normal, esse nome de arquivo único e longo será alterado e seu link simbólico não será mais útil .
fonte
Salve o seguinte script de shell em algum lugar:
Execute-o usando a sintaxe:
fonte