From 8cf76e6a9c04509d460e0bfd485e17abf030b6b4 Mon Sep 17 00:00:00 2001 From: Andinus Date: Thu, 19 Mar 2020 16:56:43 +0530 Subject: Add support for other desktop environments --- pkg/background/set.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/background/set.go b/pkg/background/set.go index fa95f6f..2badc48 100644 --- a/pkg/background/set.go +++ b/pkg/background/set.go @@ -1,13 +1,27 @@ package background -import "os/exec" +import ( + "fmt" + "os" + "os/exec" +) // Set calls feh to set the background func Set(path string) error { - feh, err := exec.LookPath("feh") - if err != nil { + switch os.Getenv("XDG_CURRENT_DESKTOP") { + case "GNOME", "Unity", "Pantheon": + path = fmt.Sprintf("%s%s", "file://", path) + err = exec.Command("gsettings", "set org.gnome.desktop.background picture-uri", path).Run() + return err + case "LXDE": + err = exec.Command("pcmanfm", "-w", path).Run() + return err + default: + feh, err := exec.LookPath("feh") + if err != nil { + return err + } + err = exec.Command(feh, "--bg-fill", path).Run() return err } - err = exec.Command(feh, "--bg-fill", path).Run() - return err } -- cgit 1.4.1-2-gfad0