Compare commits

...

2 Commits

Author SHA1 Message Date
andrzej bba3a43bb8 begin hex to hue converter 2024-11-03 09:35:06 +01:00
andrzej 52902aa5c8 hacky solution to race condition 2024-11-03 09:34:45 +01:00
2 changed files with 18 additions and 10 deletions

View File

@ -30,6 +30,11 @@ func makeDefaultImageFilters() ImageFilters {
} }
} }
func hexToHSL(string) [3]int {
return [3]int{1, 1, 1}
}
func pickRandomImage(dir string) (string, error) { func pickRandomImage(dir string) (string, error) {
dir = config.ImagesDir + dir dir = config.ImagesDir + dir

View File

@ -1,7 +1,7 @@
package main package main
import ( import (
"bufio" // "bufio"
"fmt" "fmt"
"log" "log"
"os/exec" "os/exec"
@ -14,14 +14,15 @@ func slideshow(ch <-chan string) {
//set a flat background color based on config defaults //set a flat background color based on config defaults
fillCmd := exec.Command("swaybg", "-c", "#232136") fillCmd := exec.Command("swaybg", "-c", "#232136")
stdout, _ := fillCmd.StdoutPipe() // stdout, _ := fillCmd.StdoutPipe()
scanner := bufio.NewScanner(stdout) // scanner := bufio.NewScanner(stdout)
out := make(chan string) // out := make(chan string)
go func() { // go func() {
for scanner.Scan() { // for scanner.Scan() {
out <- scanner.Text() // fmt.Println("scanner: ", scanner.Text())
} // out <- scanner.Text()
}() // }
// }()
ready := make(chan bool) ready := make(chan bool)
go func() { go func() {
@ -29,7 +30,8 @@ func slideshow(ch <-chan string) {
if err != nil { if err != nil {
fmt.Println("could not set background color", err) fmt.Println("could not set background color", err)
} }
<-out //NOTE: this is *very* hacky, but it is difficult to know when swaybg has initiated
time.Sleep(100 * time.Millisecond)
ready <- true ready <- true
fmt.Println("bg color set!") fmt.Println("bg color set!")
fillCmd.Wait() fillCmd.Wait()
@ -38,6 +40,7 @@ func slideshow(ch <-chan string) {
var cmd *exec.Cmd var cmd *exec.Cmd
go func() { go func() {
for { for {
<-ready
newCmd := setRandomWallpaper(dir) newCmd := setRandomWallpaper(dir)
if cmd != nil { if cmd != nil {
err := cmd.Process.Kill() err := cmd.Process.Kill()