From c2c055741ae25acb1ca880397db7a5bafff3fd7b Mon Sep 17 00:00:00 2001 From: Stefan Kombrink Date: Wed, 10 Apr 2019 04:05:56 +0200 Subject: [PATCH] fix pulse audio suspension --- dolmades | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/dolmades b/dolmades index b92782a..7516c37 100755 --- a/dolmades +++ b/dolmades @@ -4,6 +4,7 @@ import shutil import stat import sys import subprocess +import shlex import os import re import hashlib @@ -12,6 +13,17 @@ import config as cfg class Main(object): + def handlePulseAudio(self): + cmd = "which pasuspender" + save_cmd=shlex.split(cmd) + proc=subprocess.Popen(save_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = proc.communicate() + self.paCmd="" + + if (proc.returncode==0): + self.paCmd=out.split('\n')[0] + print("Found PulseAudio, will use "+self.paCmd) + def start(self): try: cmd = sys.argv[1] @@ -23,12 +35,6 @@ class Main(object): if (cmd=='launch'): - try: - subprocess.call("pulseaudio -k", shell=True, close_fds=True) - print("PulseAudio suspended") - except: - pass - containerPath=cfg.DOLMADES_PATH+"/containers/"+sys.argv[2] fn=containerPath+"/configuredBinds" @@ -62,8 +68,9 @@ class Main(object): if os.path.exists(cfg.HOME+"/.Xauthority"): cmd_bind=cmd_bind+" --volume="+cfg.HOME+"/.Xauthority" - cmd=cfg.UDOCKERCMD_QUIET+" run --user="+cfg.USER\ - +cmd_bind+" --hostenv --dri '"+sys.argv[2]+"' sh -c '/.dolmades/start.sh \""+"\" \"".join(sys.argv[3:])+"\"'" + self.handlePulseAudio() + cmd=self.paCmd+" -- "+cfg.UDOCKERCMD_QUIET+" run --user="+cfg.USER\ + +cmd_bind+" --hostenv --dri '"+sys.argv[2]+"' sh -x -c '/.dolmades/start.sh \""+"\" \"".join(sys.argv[3:])+"\"'" print(cmd) subprocess.call(cmd, shell=True, close_fds=True) @@ -73,14 +80,9 @@ class Main(object): subprocess.call(cmd, shell=True, close_fds=True) if (cmd=='debug'): + self.handlePulseAudio() - try: - subprocess.call("pulseaudio -k", shell=True, close_fds=True) - print("PulseAudio suspended") - except: - pass - - cmd=cfg.UDOCKERCMD_QUIET+" run --user="+cfg.USER+\ + cmd=self.paCmd+" -- "+cfg.UDOCKERCMD_QUIET+" run --user="+cfg.USER+\ " --volume="+cfg.INST_PATH+":/"+cfg.INST_DIR+\ " --bindhome --hostenv --env='WINEDLLOVERRIDES=winemenubuilder.exe=d' --hostauth --dri '"+sys.argv[2]+"' bash" print(cmd)