Altera automaticamente o papel de parede do Ubuntu em uma determinada hora

5

Por isso, estou usando o Ubuntu e encontrei muitos softwares e soluções alternativas para alterar os papéis de parede automaticamente, MAS , tudo relacionado a intervalos de tempo e o que desejo é por < em> determinado período de tempo .

Como eu tenho esses papéis de parede para o amanhecer, manhã, tarde, tarde e noite. E eu quero definir meus papéis de parede que cada um deles transições em uma determinada hora, por exemplo, 4:00, 08:00, 12:00, 15:00, 18:00 e 20:00. NÃO através de a cada 3 horas ou mais, POR FAVOR.

Encontrei wallch , SyncWall e Variedade , mas não vi o objetivo pretendido. O Syncwall estava perto o suficiente, exceto pelo fato de causar um bug com papéis de parede com dois monitores.

Quaisquer outros apps / softwares que você possa sugerir? Um script manual também faria, se você puder.

    
por anobilisgorse 22.08.2015 / 08:19

1 resposta

4
  1. Não tenho certeza, mas talvez você tenha que instalar dconf primeiro

    sudo apt-get install dconf-cli
    
  2. Edite seu crontab

    crontab -e
    
  3. Adicione uma entrada para cada imagem de fundo

    */5 4,5,6,7 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/4am'
    */5 8,8,9,10,11 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/8am'
    */5 12,13,14 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/12am'
    */5 15,16,17 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/3pm'
    */5 18,19 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/6pm'
    */5 20,21,22,23,0,1,2,3 * * *   /path/to/change_wallpaper '/path/of/your/wallpaper/for/8pm'
    
    • O intervalo é definido para 5 minutos ( */5 ).
    • O menor intervalo possível é de 1 minuto ( */1 ou * )
  4. Salve e feche seu editor de crontab

  5. Crie o script

    nano change_wallpaper
    
  6. Adicione o código abaixo

    #!/bin/bash -e
    user=$(whoami)
    
    fl=$(find /proc -maxdepth 2 -user "$user" -name environ -print -quit)
    for i in {1..5}
    do
      fl=$(find /proc -maxdepth 2 -user "$user" -name environ -newer "$fl" -print -quit)
    done
    
    export DBUS_SESSION_BUS_ADDRESS
    DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS "$fl" | cut -d= -f2-)
    
    IMG="file://"
    if [ "$(gsettings get org.gnome.desktop.background picture-uri)" != "$FILE"]; then
        dconf write "/org/gnome/desktop/background/picture-uri" "'file://${IMG}'"
       # gsettings set org.gnome.desktop.background picture-uri "'$IMG'"
    fi
    
    • O script funciona com dconf ou gsettings . Você pode alternar entre os dois métodos. Basta mover o # na frente da linha gsettings … para a linha dconf …
  7. Torne-o executável

    chmod +x change_wallpaper
    
  8. Teste o script no seu crontab

    • Edite seu crontab novamente

      crontab -e
      
    • Adicione a linha (temporária) abaixo

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Feche o editor do crontab

    • Espere um minuto

  9. Se o script funcionar, remova a entrada de teste

    • Edite seu crontab novamente

      crontab -e
      
    • Remova a linha (temporária) abaixo

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Feche o editor do crontab

Script parcialmente retirado de aqui

    
por A.B. 22.08.2015 / 16:57

Tags