diff --git a/Toby Doom Launcher.py b/Toby Doom Launcher.py index 65ad1ce..97708fe 100755 --- a/Toby Doom Launcher.py +++ b/Toby Doom Launcher.py @@ -126,26 +126,28 @@ if platform.system() == "Windows": print(f"Failed to initialize accessible_output2: {e}") sys.exit() else: - # Linux/Mac path - prioritize Orca remote controller - orca_remote = OrcaRemoteController() - if orca_remote.available: - speechProvider = "orca_remote" - orca = orca_remote - else: - try: - output = subprocess.check_output(["pgrep", "cthulhu"]) - speechProvider = "cthulhu" - except (subprocess.CalledProcessError, FileNotFoundError): + # Linux/Mac path - prioritize speech-dispatcher first + try: + import speechd + spd = speechd.Client() + speechProvider = "speechd" + except ImportError: + # Fall back to Orca remote controller + orca_remote = OrcaRemoteController() + if orca_remote.available: + speechProvider = "orca_remote" + orca = orca_remote + else: + # Fall back to Cthulhu try: - import accessible_output2.outputs.auto - s = accessible_output2.outputs.auto.Auto() - speechProvider = "accessible_output2" - except ImportError as e: + output = subprocess.check_output(["pgrep", "cthulhu"]) + speechProvider = "cthulhu" + except (subprocess.CalledProcessError, FileNotFoundError): try: - import speechd - spd = speechd.Client() - speechProvider = "speechd" - except ImportError: + import accessible_output2.outputs.auto + s = accessible_output2.outputs.auto.Auto() + speechProvider = "accessible_output2" + except ImportError as e: print("No speech providers found.") sys.exit() @@ -1961,7 +1963,14 @@ class DoomLauncher(QMainWindow): except ImportError: pass else: - # On Linux, check each provider + # On Linux, check each provider in priority order + # Check speechd first (highest priority) + try: + import speechd + available_providers.append("speechd") + except ImportError: + pass + # Check Orca remote controller orca_remote = OrcaRemoteController() if orca_remote.available: @@ -1980,13 +1989,6 @@ class DoomLauncher(QMainWindow): available_providers.append("accessible_output2") except ImportError: pass - - # Check speechd - try: - import speechd - available_providers.append("speechd") - except ImportError: - pass return available_providers