commit 4173dac

delthas  ·  2025-09-24 12:50:50 +0000 UTC
parent 0f4a102
Support screenshots on Darwin
2 files changed,  +47, -1
+46, -0
 1@@ -0,0 +1,46 @@
 2+//go:build darwin
 3+
 4+package ui
 5+
 6+import (
 7+	"fmt"
 8+	"os"
 9+	"os/exec"
10+)
11+
12+var callback func(any)
13+
14+func (ui *UI) notify(target NotifyEvent, title, content string) int {
15+	ui.vx.Notify(title, content)
16+	return -1
17+}
18+
19+func notifyClose(id int) {}
20+
21+func Screenshot() error {
22+	f, err := os.CreateTemp("", "senpai-screenshot-*.png")
23+	if err != nil {
24+		return fmt.Errorf("opening screenshot file: %v", err)
25+	}
26+	f.Close()
27+
28+	c := exec.Command("screencapture", "-i", f.Name())
29+	if err := c.Start(); err != nil {
30+		return err
31+	}
32+	go func() {
33+		if err := c.Wait(); err != nil {
34+			return
35+		}
36+		callback(&ScreenshotEvent{
37+			Path: f.Name(),
38+		})
39+	}()
40+	return nil
41+}
42+
43+func DBusStart(f func(any)) {
44+	callback = f
45+}
46+
47+func DBusStop() {}
+1, -1
1@@ -1,4 +1,4 @@
2-//go:build !linux
3+//go:build !linux && !darwin
4 
5 package ui
6