diff --git a/bottles/backend/managers/manager.py b/bottles/backend/managers/manager.py index dcd35fa674c..20960a1613b 100644 --- a/bottles/backend/managers/manager.py +++ b/bottles/backend/managers/manager.py @@ -721,10 +721,10 @@ def get_programs(self, config: BottleConfig) -> List[dict]: "arguments": _program.get("arguments"), "name": _program.get("name"), "path": _program.get("path"), - "folder": _program.get("folder", program_folder), "icon": "com.usebottles.bottles-program", "pre_script": _program.get("pre_script"), "post_script": _program.get("post_script"), + "folder": _program.get("folder", program_folder), "dxvk": _program.get("dxvk"), "vkd3d": _program.get("vkd3d"), "dxvk_nvapi": _program.get("dxvk_nvapi"), diff --git a/bottles/backend/wine/executor.py b/bottles/backend/wine/executor.py index aaac565fc06..2c4480421d0 100644 --- a/bottles/backend/wine/executor.py +++ b/bottles/backend/wine/executor.py @@ -28,12 +28,12 @@ def __init__( exec_path: str, args: str = "", terminal: bool = False, - cwd: Optional[str] = None, environment: Optional[dict] = None, move_file: bool = False, move_upd_fn: callable = None, pre_script: Optional[str] = None, post_script: Optional[str] = None, + cwd: Optional[str] = None, monitoring: Optional[list] = None, program_dxvk: Optional[bool] = None, program_vkd3d: Optional[bool] = None, @@ -59,10 +59,10 @@ def __init__( self.exec_path = shlex.quote(exec_path) self.args = args self.terminal = terminal - self.cwd = self.__get_cwd(cwd) self.environment = environment self.pre_script = pre_script self.post_script = post_script + self.cwd = self.__get_cwd(cwd) self.monitoring = monitoring self.use_gamescope = program_gamescope self.use_virt_desktop = program_virt_desktop @@ -120,9 +120,9 @@ def run_program(cls, config: BottleConfig, program: dict, terminal: bool = False config=config, exec_path=program.get("path"), args=program.get("arguments"), - cwd=program.get("folder"), pre_script=program.get("pre_script"), post_script=program.get("post_script"), + cwd=program.get("folder"), terminal=terminal, program_dxvk=program.get("dxvk"), program_vkd3d=program.get("vkd3d"), @@ -274,11 +274,11 @@ def __launch_exe(self): command=self.exec_path, arguments=self.args, terminal=self.terminal, - cwd=self.cwd, environment=self.environment, communicate=True, pre_script=self.pre_script, post_script=self.post_script, + cwd=self.cwd, ) res = winecmd.run() self.__set_monitors() diff --git a/bottles/backend/wine/winecommand.py b/bottles/backend/wine/winecommand.py index d90682e38a5..c481e17cff7 100644 --- a/bottles/backend/wine/winecommand.py +++ b/bottles/backend/wine/winecommand.py @@ -95,11 +95,11 @@ def __init__( arguments: str = "", environment: dict = {}, communicate: bool = False, - cwd: Optional[str] = None, colors: str = "default", minimal: bool = False, # avoid gamemode/gamescope usage pre_script: Optional[str] = None, post_script: Optional[str] = None, + cwd: Optional[str] = None, ): _environment = environment.copy() self.config = self._get_config(config) @@ -597,10 +597,10 @@ def get_cmd( del extracted_env["WINEDLLOVERRIDES"] environment.update(extracted_env) - if post_script is not None: + if post_script not in (None, ""): command = f"{command} ; sh '{post_script}'" - if pre_script is not None: + if pre_script not in (None, ""): command = f"sh '{pre_script}' ; {command}" return command diff --git a/bottles/frontend/cli/cli.py b/bottles/frontend/cli/cli.py index 6a7fb04452f..e08d75a158f 100644 --- a/bottles/frontend/cli/cli.py +++ b/bottles/frontend/cli/cli.py @@ -666,9 +666,9 @@ def run_program(self): _program_args = program.get("arguments") if _keep and _program_args: _args = _program_args + " " + _args - program.get("folder", "") program.get("pre_script", None) program.get("post_script", None) + program.get("folder", None) program.get("dxvk") program.get("vkd3d") diff --git a/bottles/frontend/windows/launchoptions.py b/bottles/frontend/windows/launchoptions.py index ace11ce0cc0..1b1550d0133 100644 --- a/bottles/frontend/windows/launchoptions.py +++ b/bottles/frontend/windows/launchoptions.py @@ -169,19 +169,19 @@ def __init__(self, parent, config, program, **kwargs): "virtual_desktop", ) - if program.get("pre_script") not in ["", None]: + if program.get("pre_script") not in ("", None): self.action_pre_script.set_subtitle(program["pre_script"]) self.btn_pre_script_reset.set_visible(True) - if program.get("post_script") not in ["", None]: + if program.get("post_script") not in ("", None): self.action_post_script.set_subtitle(program["post_script"]) self.btn_post_script_reset.set_visible(True) - if program.get("folder") not in [ + if program.get("folder") not in ( "", None, ManagerUtils.get_exe_parent_dir(self.config, self.program["path"]), - ]: + ): self.action_cwd.set_subtitle(program["folder"]) self.btn_cwd_reset.set_visible(True) @@ -252,10 +252,7 @@ def set_path(dialog, result): # also thrown when dialog has been cancelled if error.code == 2: # error 2 seems to be 'dismiss' or 'cancel' - if ( - self.program["pre_script"] is None - or self.program["pre_script"] == "" - ): + if self.program.get("pre_script") in (None, ""): self.action_pre_script.set_subtitle( self.__default_pre_script_msg ) @@ -285,10 +282,7 @@ def set_path(dialog, result): # also thrown when dialog has been cancelled if error.code == 2: # error 2 seems to be 'dismiss' or 'cancel' - if ( - self.program["post_script"] is None - or self.program["post_script"] == "" - ): + if self.program.get("post_script") in (None, ""): self.action_pre_script.set_subtitle( self.__default_pre_script_msg ) @@ -302,12 +296,12 @@ def set_path(dialog, result): dialog.open(parent=self.window, callback=set_path) def __reset_pre_script(self, *_args): - self.program["pre_script"] = "" + self.program["pre_script"] = None self.action_pre_script.set_subtitle(self.__default_pre_script_msg) self.btn_pre_script_reset.set_visible(False) def __reset_post_script(self, *_args): - self.program["post_script"] = "" + self.program["post_script"] = None self.action_post_script.set_subtitle(self.__default_post_script_msg) self.btn_post_script_reset.set_visible(False) @@ -328,7 +322,7 @@ def set_path(dialog, result): # also thrown when dialog has been cancelled if error.code == 2: # error 2 seems to be 'dismiss' or 'cancel' - if self.program["folder"] is None or self.program["folder"] == "": + if self.program.get("folder") in (None, ""): self.action_cwd.set_subtitle(self.__default_cwd_msg) else: # something else happened...