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/server.go

53 lines
1.1 KiB

package xpra
import (
"fmt"
"os"
"os/exec"
"github.com/subgraph/oz"
)
var xpraServerDefaultArgs = []string{
"--no-mdns",
//"--pulseaudio",
"--input-method=keep",
}
func NewServer(config *oz.XServerConf, display uint64, spath, workdir string) *Xpra {
x := new(Xpra)
x.Config = config
x.Display = display
x.WorkDir = workdir
x.xpraArgs = prepareServerArgs(config, display, workdir)
x.xpraArgs = append([]string{"-b", "/usr/bin/xpra"}, x.xpraArgs...)
x.Process = exec.Command(spath, x.xpraArgs...)
x.Process.Env = append(os.Environ(),
"TMPDIR="+workdir,
)
if err := writeFakeProfile(x.Process); err != nil {
return nil
}
return x
}
func prepareServerArgs(config *oz.XServerConf, display uint64, workdir string) []string {
args := getDefaultArgs(config)
args = append(args, xpraServerDefaultArgs...)
if config.AudioMode == oz.PROFILE_AUDIO_FULL || config.AudioMode == oz.PROFILE_AUDIO_SPEAKER {
args = append(args, "--pulseaudio")
} else {
args = append(args, "--no-pulseaudio")
}
args = append(args,
fmt.Sprintf("--socket-dir=%s", workdir),
"start",
fmt.Sprintf(":%d", display),
)
return args
}