Vraag Ubuntu-achtergrond op een bepaald uur automatisch wijzigen


Dus ik gebruik Ubuntu en ik ben veel software en tijdelijke oplossingen tegengekomen om achtergronden automatisch te veranderen, MAAR, het heeft allemaal betrekking op tijd-intervallen en wat ik wil is door bepaalde tijdsperiode.

Alsof ik dit behang kreeg voor zonsopgang, ochtend, middag, middag, zonsondergang en nacht. En ik wil mijn achtergronden instellen die elk op een bepaald uur overgaat, bijvoorbeeld 4 uur, 8 uur, 12 uur, 15 uur, 18 uur en 20 uur. NIET door elke 3 uur of zo, ALSTUBLIEFT.

ik kwam tegen wallch, SyncWall en Verscheidenheid, maar zag mijn beoogde doel niet. Syncwall was dichtbij genoeg, behalve dat het een bug veroorzaakt met achtergronden met twee monitoren.

Andere apps / software die u zou kunnen voorstellen? Een manuscript zou ook doen, als u kunt.


5
2017-08-22 06:19


oorsprong


Ik zou de volgende 2 stappen geloven: 1. Je verandert het behang met een gsetting, dus kijk hoe je dat doet. 2. voeg die opdracht toe aan een script en voer dat script uit / etc / crontab op de aangegeven tijdstippen uit met een specifieke achtergrond. - Rinzwind
Het spijt me @Rinzwind, maar ik ben een amateur als het gaat om Linux-opdrachten, maar ik heb ruime ervaring met programmeren. Misschien zou het geweldig zijn als je zou kunnen wijzen op de specifieke scripts die ik zou moeten coderen. - anobilisgorse


antwoorden:


  1. Ik weet het niet zeker, maar misschien moet je het installeren dconf eerste

    sudo apt-get install dconf-cli
    
  2. Bewerk je crontab

    crontab -e
    
  3. Voeg een item toe voor elke achtergrondafbeelding

    */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'
    
    • Het interval is ingesteld op 5 minuten (*/5).
    • Het laagst mogelijke interval is 1 minuut (*/1 of *)
  4. Sla uw crontab-editor op en sluit hem

  5. Maak het script

    nano change_wallpaper
    
  6. Voeg de onderstaande code toe

    #!/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://$1"
    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
    
    • Het script werkt met dconf of gsettings. U kunt tussen beide methoden schakelen. eenvoudigweg verhuizing de # aan de voorkant van de gsettings … regel naar de dconf … lijn
  7. Maak het uitvoerbaar

    chmod +x change_wallpaper
    
  8. Test het script in je crontab

    • Bewerk je crontab opnieuw

      crontab -e
      
    • Voeg de (tijdelijke) regel hieronder toe

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Sluit de crontab-editor

    • Wacht even

  9. Als het script werkt, verwijdert u de testvermelding

    • Bewerk je crontab opnieuw

      crontab -e
      
    • Verwijder de (tijdelijke) regel hieronder

      */1 * * * *   /path/to/change_wallpaper '/path/of/any/wallpaper'
      
    • Sluit de crontab-editor

Script gedeeltelijk overgenomen van hier


4
2017-08-22 14:57



Het change_wallpaper-script werkte 1 minuut! Ik ga gewoon kijken of de "schemering" nu werkt, bedankt. :) - anobilisgorse
Ik vroeg het me af, maar toen ik probeerde te installeren dconf, dat zei het E: Package 'dconf' has no installation candidate. Maar ik koos voor de gsettings hoe dan ook. - anobilisgorse
Sorry, het pakket is dconf-cli - A.B.
Ik heb het net gemerkt, maar als ik na vier uur 's ochtends de pc aanzet, zal de geplande veranderingsbehang niet van kracht worden. Is er een andere manier om de geplande taak te forceren? - anobilisgorse
Ik heb mijn antwoord verbeterd. Het interval is nu elke 5 minuten (*/5). De laagste waarde is 1 minuut. En ik heb een test in het script toegevoegd om nutteloze wijzigingen te voorkomen. - A.B.