package main import ( "fmt" "log" "time" "github.com/reujab/wallpaper" ) func slideshow(ch <-chan string) { dir := <-ch ticker := time.NewTicker(time.Duration(config.Duration) * time.Second) go func() { for { img, err := pickRandomImage(dir) if err != nil { panic(err) } fmt.Printf("setting wallpaper: %v\n", img) err = wallpaper.SetFromFile(img) if err != nil { log.Fatal("failed to set wallpaper!", err) } select { case dir = <-ch: log.Println("directory set!") continue case <-ticker.C: continue } } }() }