summary refs log tree commit diff stats
path: root/pkg/background/set_unix.go
diff options
context:
space:
mode:
authorAndinus <andinus@nand.sh>2020-03-24 11:49:57 +0530
committerAndinus <andinus@nand.sh>2020-03-24 11:49:57 +0530
commit522c16f46419ddc19cb07808c53862292b8fd3ba (patch)
tree86c80b37c26f29f4cda058e242f7b96e3f525ddb /pkg/background/set_unix.go
parent7bf70520a744d5b6b60a805990a82aaa180fb64b (diff)
downloadcetus-522c16f46419ddc19cb07808c53862292b8fd3ba.tar.gz
Add darwin support
Diffstat (limited to 'pkg/background/set_unix.go')
-rw-r--r--pkg/background/set_unix.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkg/background/set_unix.go b/pkg/background/set_unix.go
new file mode 100644
index 0000000..cd75ae3
--- /dev/null
+++ b/pkg/background/set_unix.go
@@ -0,0 +1,30 @@
+// +build linux netbsd openbsd freebsd dragonfly
+
+package background
+
+import (
+	"fmt"
+	"os"
+	"os/exec"
+)
+
+// Set calls feh to set the background
+func Set(path string) error {
+	var err error
+	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
+	}
+}