Não estou conseguindo fazer A Troca automática de Wallpaper no Gnome 3 [RESOLVIDO]

1. Não estou conseguindo fazer A Troca automática de Wallpaper no Gnome 3 [RESOLVIDO]

Bonezim
Bonezim

(usa Kali)

Enviado em 04/11/2015 - 01:35h

Boa Noite,

Kali GNU/Linux 2.0 (sana) 64-bit
Gnome 3.14.1

Eu já estou há um bom tempo tentando fazer o meu Wallpaper mudar aleatóriamente e automaticamente.
Já fiz bastante pesquisa e até agora não consegui encontrar uma solução.
Minha tentativa está sendo usar uma tarefa agendada pelo cron para rodar um shell script. Eu tentei dois scripts que encontrei aqui mesmo nesse site, segue os links:
http://www.vivaolinux.com.br/dica/Troca-automatica-de-Wallpaper-no-Gnome-3
http://www.vivaolinux.com.br/script/Mudar-aleatoriamente-o-papel-de-parede-no-GNOME-3

E aqui está meu script:
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:

# Script para alterar randomicamente o Wallpaper no Gnome 3
# Diretório contendo as imagens JPG
DIR="/home/Images/Wallpapers/Computer"

# Comando para selecionar aleatoriamente um arquivo JPG do diretório
# Obs.: Deletar o *.jpg permite selecionar qualquer arquivo mas isso pode retornar um diretório
PIC=$(ls $DIR/*.jpg | shuf -n1)

# Comando para alterar a imagem de Background (fazendo um Zoom para preencher a tela)
gsettings set org.gnome.desktop.background picture-options zoom
gsettings set org.gnome.desktop.background picture-uri file://$PIC

exit 0


Ambos scripts funcionam perfeitamente, pois testei eles fora do cron e eles alteram meu wallpaper normalmente.

O comando que estou usando no cron é o seguinte:
* * * * * export DISPLAY=:0&&/home/Images/Wallpapers/wallpaper.sh 2> /home/Images/Wallpapers/Computer/erro

Obs.: Coloquei para alterar a cada minuto só para testar e ver se está alterando o wallpaper ou não.

E sim meu cron job está rodando e funcionando. Eu sei por três motivos:
1º eu fiz o teste no cron com um comando para abrir uma nova página no Iceweasel e abriu normalmente.

2º Não aparece nenhuma mensagem no arquivo "erro".

3º (E é aqui que está meu problema) Eu sei até que o comando que escrevi está funcionando, pois não aparece erro e
Cada vez que eu clico com o botão direito do mouse na Desktop e escolho "Alterar plano de fundo" aparece uma imagem diferente, porém ela não é mostrada na Desktop, a imagem da Desktop continua sem alterar. Toda vez que fecho e abro a opção "Alterar plano de fundo" (Claro, a cada minuto) muda a imagem na janela dessa opção, porém não muda na minha Desktop. A imagem que aparece na opção "Alterar plano de fundo" é uma e a imagem que a aparece na Desktop é outra.

Obs.: Se eu for na opção "Alterar plano de fundo" escolher uma imagem qualquer manualmente ela aplica à Desktop normalmente. E outra, como eu disse anteriormente, se eu abrir os scripts fora do cron eles alteram meu wallpaper da Desktop normalmente também.

Alguém tem uma solução por favor?
Já gastei muito e muito tempo tentanto resolver.

Desde já agradeço.




  


2. Re: Não estou conseguindo fazer A Troca automática de Wallpaper no Gnome 3 [RESOLVIDO]

Bonezim
Bonezim

(usa Kali)

Enviado em 04/11/2015 - 20:10h


Consegui!
Depois de tanto tempo tentando, não estou nem acreditando que consegui Hahaha

As instruções para quem estiver passando pelo mesmo problema que passei:

Como o cron usa um ambiente de variáveis muito restrita é preciso adicionar os ambientes necessários. Tanto que é por isso que adicionamos aquele "PATH" no começo do script e no comando do crontab colocomaos "export DISPLAY=:0". Entretanto apenas um ambiente de variáveis é o responsável por rodar o script de maneira correta quando colocado na forma de cron job que é o "DBUS_SESSION_BUS_ADDRESS".

Eu já tinha feito uma pesquisa anteriormente que me deu duas resoluções para essa questão:
SESSIONFILE=$( find "$HOME/.dbus/session-bus/" -type f )
export $( grep "DBUS_SESSION_BUS_ADDRESS" "$SESSIONFILE" | sed '/^#/d' )

ou
PID=$(pgrep -o gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)


Só que claro, com a minha sorte essas soluções não podiam funcionar né. De toda forma eu deixo aqui essas soluções para você porque talvez resolva seu problema. (Basta colocar uma das duas no seu script)

Então, resolvi focar minha pesquisa especificamente nesse DBUS, foi aí que veio a solução que finalmente resolveu meu problema e estou usando agora mesmo:
export $(cat /proc/$(pgrep -u `whoami` ^gnome-shell$)/environ | grep -z DBUS_SESSION_BUS_ADDRESS)


Obs.: basta colocar essa sintaxe no seu script antes do comando "gsettings set org.gnome.desktop.background..."

Deixo como exemplo o meu script:
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:

# Script para alterar randomicamente o Wallpaper no Gnome 3

# Diretório contendo as imagens JPG
DIR="/home/Images/Wallpapers/Computer"

# Comando para selecionar aleatoriamente um arquivo JPG do diretório
# Obs.: Deletar o *.jpg permite selecionar qualquer arquivo mas isso pode retornar um diretório
PIC=$(ls $DIR/*.jpg | shuf -n1)

# DBUS!
export $(cat /proc/$(pgrep -u `whoami` ^gnome-shell$)/environ | grep -z DBUS_SESSION_BUS_ADDRESS)

# Comando para alterar a imagem de Background (fazendo um Zoom para preencher a tela)
gsettings set org.gnome.desktop.background picture-options zoom
gsettings set org.gnome.desktop.background picture-uri file://$PIC

exit 0


Espero que ajude alguém, flw vlw


3. Re: Não estou conseguindo fazer A Troca automática de Wallpaper no Gnome 3 [RESOLVIDO]

Everardo Cavalcante
qolyx

(usa KUbuntu)

Enviado em 08/10/2017 - 00:16h

Bonezim escreveu:


Consegui!
Depois de tanto tempo tentando, não estou nem acreditando que consegui Hahaha

As instruções para quem estiver passando pelo mesmo problema que passei:

Como o cron usa um ambiente de variáveis muito restrita é preciso adicionar os ambientes necessários. Tanto que é por isso que adicionamos aquele "PATH" no começo do script e no comando do crontab colocomaos "export DISPLAY=:0". Entretanto apenas um ambiente de variáveis é o responsável por rodar o script de maneira correta quando colocado na forma de cron job que é o "DBUS_SESSION_BUS_ADDRESS".

Eu já tinha feito uma pesquisa anteriormente que me deu duas resoluções para essa questão:
SESSIONFILE=$( find "$HOME/.dbus/session-bus/" -type f )
export $( grep "DBUS_SESSION_BUS_ADDRESS" "$SESSIONFILE" | sed '/^#/d' )

ou
PID=$(pgrep -o gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)


Só que claro, com a minha sorte essas soluções não podiam funcionar né. De toda forma eu deixo aqui essas soluções para você porque talvez resolva seu problema. (Basta colocar uma das duas no seu script)

Então, resolvi focar minha pesquisa especificamente nesse DBUS, foi aí que veio a solução que finalmente resolveu meu problema e estou usando agora mesmo:
export $(cat /proc/$(pgrep -u `whoami` ^gnome-shell$)/environ | grep -z DBUS_SESSION_BUS_ADDRESS)


Obs.: basta colocar essa sintaxe no seu script antes do comando "gsettings set org.gnome.desktop.background..."

Deixo como exemplo o meu script:
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:

# Script para alterar randomicamente o Wallpaper no Gnome 3

# Diretório contendo as imagens JPG
DIR="/home/Images/Wallpapers/Computer"

# Comando para selecionar aleatoriamente um arquivo JPG do diretório
# Obs.: Deletar o *.jpg permite selecionar qualquer arquivo mas isso pode retornar um diretório
PIC=$(ls $DIR/*.jpg | shuf -n1)

# DBUS!
export $(cat /proc/$(pgrep -u `whoami` ^gnome-shell$)/environ | grep -z DBUS_SESSION_BUS_ADDRESS)

# Comando para alterar a imagem de Background (fazendo um Zoom para preencher a tela)
gsettings set org.gnome.desktop.background picture-options zoom
gsettings set org.gnome.desktop.background picture-uri file://$PIC

exit 0


Espero que ajude alguém, flw vlw


Obrigado pela dica funcionou maravilha!
Tabém uso este mesmo script e com certeza é o melhor que já vi pra mudança automática de wallpaper
tks, []'s qolyx.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts