diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-03-13 09:26:11 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-03-13 09:26:11 +0300 |
| commit | 13773bcc977a761ec2cef0a1d43f210634841548 (patch) | |
| tree | dc02de0bdc8a8c2c6f9d625aebf580d6dacdfa03 /session.go | |
| parent | e77dbb3160bb3999a98f9fc3f9aac62909cee4a4 (diff) | |
| parent | d9b820c9c4971922fcde0b373f70c54c870446d5 (diff) | |
Merge branch 'master' into feat/agent-flow
Diffstat (limited to 'session.go')
| -rw-r--r-- | session.go | 28 |
1 files changed, 25 insertions, 3 deletions
@@ -1,6 +1,7 @@ package main import ( + "bytes" "encoding/json" "errors" "fmt" @@ -161,10 +162,31 @@ func loadOldChatOrGetNew() []models.RoleMsg { } func copyToClipboard(text string) error { - cmd := exec.Command("xclip", "-selection", "clipboard") - cmd.Stdin = nil + var cmd *exec.Cmd + if _, err := exec.LookPath("xclip"); err == nil { + cmd = exec.Command("xclip", "-selection", "clipboard") + } else if _, err := exec.LookPath("wl-copy"); err == nil { + cmd = exec.Command("wl-copy") + } else { + return errors.New("no clipboard tool found (install xclip or wl-clipboard)") + } + cmd.Stdin = strings.NewReader(text) cmd.Stdout = nil cmd.Stderr = nil - cmd.Stdin = strings.NewReader(text) return cmd.Run() } + +func readFromClipboard() (string, error) { + var cmd *exec.Cmd + if _, err := exec.LookPath("xclip"); err == nil { + cmd = exec.Command("xclip", "-selection", "clipboard", "-out") + } else if _, err := exec.LookPath("wl-paste"); err == nil { + cmd = exec.Command("wl-paste") + } else { + return "", errors.New("no clipboard tool found (install xclip or wl-clipboard)") + } + var out bytes.Buffer + cmd.Stdout = &out + err := cmd.Run() + return out.String(), err +} |
