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() {}