Cinnamon: Plano de fundo da área de trabalho da estrutura de diretório aninhada?

2

Eu tenho uma estrutura de diretórios aninhada com imagens de viagem em ~/Pictures/Shotwell-Import/YYYY/MM/DD/ .

Gostaria que o plano de fundo da minha área de trabalho fosse escolhido aleatoriamente nessas fotos.

Infelizmente, parece que a Cinnamon espera um diretório simples, onde as imagens estão no nível superior.

Alguma ideia de como contornar essa limitação?
Obrigado!

    
por donquixote 07.06.2016 / 00:26

1 resposta

0

Você pode usar um cron job como solução alternativa.

Instruções com um exemplo de estrutura de diretórios. Modifique conforme necessário.

Supondo que a estrutura de diretórios aninhada esteja em /home/USERNAME/Pictures/Shotwell-Import

Escreva um script de shell

Crie um arquivo de script em /home/USERNAME/Pictures/set-random-image.sh :

#!/bin/bash

# Change to directory containing this script.
# See http://stackoverflow.com/a/3355423/246724
cd "$(dirname "$0")"

# Set the pictures directory
PICDIR="/home/USERNAME/Pictures/Shotwell-Import"

# Randomly pick one of the pictures.
# See http://www.webupd8.org/2009/11/3-lines-script-to-automatically-change.html
PICFILE=$(find $PICDIR -iregex '.*\.\(jpeg\|jpg\|png\)' | shuf -n1)

# Prevent a "dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY"
# Omit the last letter of "cinnamon-session" for the character limit in pgrep.
PID=$(pgrep -u $LOGNAME cinnamon-sessio)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

# Set Cinnamon background image.
# Other desktop environments need different command.
gsettings set org.cinnamon.desktop.background picture-uri "file://$PICFILE"

Tente as permissões de script / arquivo definido

Configure permissões de arquivo para poder executar este script. Em seguida, execute o script uma vez.

cd /home/USERNAME/Pictures
# Copy an example picture to mybkg.jpg
./set-random-image.sh
# Permission problems?
chmod u+rwx set-random-image.sh
# Now it should work!
./set-random-image.sh
# Do it again a few times, and see the background change.
# If this does not work, this tutorial will be useless to you.
./set-random-image.sh
./set-random-image.sh

Configurar uma imagem de fundo

Agora defina isso como sua imagem de plano de fundo. Você provavelmente poderia fazer isso com a linha de comando, mas eu acho que é mais transparente fazer isso na interface do usuário.

Abra as Configurações > Diálogo de planos de fundo.

Na guia "Configurações", desativar "Reproduzir fundos como uma apresentação de slides". Nós não precisamos do slideshow, porque nós vamos criar um cron job.

Na guia "Imagens", configure /home/USERNAME/Pictures/mybkg.jpg como a imagem de plano de fundo. Você precisará do ícone "+" no canto inferior esquerdo para adicionar a pasta /home/USERNAME/Pictures e depois selecionar a imagem dentro da pasta.

Configurar um cron job

Digite crontab -e . Adicione a seguinte linha para alterá-lo a cada minuto:

* * * * * /home/USERNAME/Pictures/set-random-image.sh

Espere um minuto e veja se o fundo muda.

Nota: configuração de canela versus cópia de arquivo

Em uma versão anterior dessa resposta, o script copiava uma imagem para um local padrão, em vez de alterar a configuração de canela. A vantagem era que isso funcionaria igualmente bem para outros ambientes de desktop. A desvantagem é a gravação desnecessária de disco a cada minuto, o que pode ser ruim para um SSD. A paranóia venceu no final, então eu mudei essa resposta.

    
por 11.06.2016 / 22:24

Tags