You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
subgraph-oz/xpra/xpra.go

66 lines
1.1 KiB

package xpra
import (
"fmt"
"github.com/subgraph/oz"
"os/exec"
)
type Xpra struct {
// Server working directory where unix socket is created
WorkDir string
Config *oz.XServerConf
// Running xpra process
Process *exec.Cmd
// Display number
Display uint64
// Arguments passed to xpra command
xpraArgs []string
}
var xpraDefaultArgs = []string{
"--no-daemon",
"--mmap",
"--no-sharing",
"--bell",
"--system-tray",
"--xsettings",
//"--no-xsettings",
"--notifications",
"--cursors",
"--encoding=rgb",
"--no-pulseaudio",
}
func getDefaultArgs(config *oz.XServerConf) []string {
args := []string{}
args = append(args, xpraDefaultArgs...)
if config.DisableClipboard {
args = append(args, "--no-clipboard")
} else {
args = append(args, "--clipboard")
}
if config.DisableAudio {
args = append(args, "--no-microphone", "--no-speaker")
} else {
args = append(args, "--microphone", "--speaker")
}
return args
}
func (x *Xpra) Stop() ([]byte, error) {
cmd := exec.Command("/usr/bin/xpra",
"--socket-dir="+x.WorkDir,
"stop",
fmt.Sprintf(":%d", x.Display),
)
cmd.Env = []string{"TMPDIR=" + x.WorkDir}
return cmd.Output()
}