fix: daemonize wl-copy

This commit is contained in:
yory8 2020-05-12 15:49:29 +02:00
parent ef9e6bece2
commit e1dea61d31
2 changed files with 9 additions and 1 deletions

View file

@ -2,6 +2,7 @@
**Notable bug fixes** **Notable bug fixes**
- wl-copy is now truly daemonized, allowing calling `alacritty -e sh -c clipman pick`
- fzf couldn't recover the clipboard content in some cases - fzf couldn't recover the clipboard content in some cases
# 1.5.1 # 1.5.1

View file

@ -11,6 +11,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
"syscall"
"gopkg.in/alecthomas/kingpin.v2" "gopkg.in/alecthomas/kingpin.v2"
) )
@ -178,8 +179,14 @@ func serveTxt(s string) {
smartLog(fmt.Sprintf("couldn't find wl-copy: %v\n", err), "low", *alert) smartLog(fmt.Sprintf("couldn't find wl-copy: %v\n", err), "low", *alert)
} }
// daemonize wl-copy into a truly independent process
// necessary for running stuff like `alacritty -e sh -c clipman pick`
attr := &syscall.SysProcAttr{
Setpgid: true,
}
// we mandate the mime type because we know we can only serve text; not doing this leads to weird bugs like #35 // we mandate the mime type because we know we can only serve text; not doing this leads to weird bugs like #35
cmd := exec.Cmd{Path: bin, Args: []string{bin, "-t", "TEXT"}, Stdin: strings.NewReader(s)} cmd := exec.Cmd{Path: bin, Args: []string{bin, "-t", "TEXT"}, Stdin: strings.NewReader(s), SysProcAttr: attr}
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
smartLog(fmt.Sprintf("error running wl-copy: %s\n", err), "low", *alert) smartLog(fmt.Sprintf("error running wl-copy: %s\n", err), "low", *alert)
} }