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