summaryrefslogtreecommitdiff
path: root/session.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-03-13 09:26:11 +0300
committerGrail Finder <wohilas@gmail.com>2026-03-13 09:26:11 +0300
commit13773bcc977a761ec2cef0a1d43f210634841548 (patch)
treedc02de0bdc8a8c2c6f9d625aebf580d6dacdfa03 /session.go
parente77dbb3160bb3999a98f9fc3f9aac62909cee4a4 (diff)
parentd9b820c9c4971922fcde0b373f70c54c870446d5 (diff)
Merge branch 'master' into feat/agent-flow
Diffstat (limited to 'session.go')
-rw-r--r--session.go28
1 files changed, 25 insertions, 3 deletions
diff --git a/session.go b/session.go
index 980d998..ef3bab1 100644
--- a/session.go
+++ b/session.go
@@ -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
+}