@@ -81,7 +81,7 @@ def _merge_vars(base_vars: JsonType, vars: JsonType) -> None:
8181 raise RuntimeError (f"Unspecified variable: '{ k } '" )
8282
8383
84- # Base Paths
84+ # Self path
8585if IS_APPIMAGE :
8686 SELF_PATH = Path (os .environ ["APPIMAGE" ]).resolve ()
8787else :
@@ -91,15 +91,20 @@ def _merge_vars(base_vars: JsonType, vars: JsonType) -> None:
9191 SELF_PATH = Path (sys .argv [0 ]).resolve ()
9292 if SELF_PATH .stem == "pyinstaller" or SELF_PATH .name == "gui.py" :
9393 SELF_PATH = Path (__file__ ).with_name ("main.py" ).resolve ()
94+ # Working / config directory path
9495WORKING_DIR = SELF_PATH .parent
96+ if IS_APPIMAGE :
97+ _config_folder : Path = SELF_PATH .with_name (f"{ SELF_PATH .name } .config" )
98+ if _config_folder .is_dir (): # exists and is a directory
99+ WORKING_DIR = _config_folder
95100# Development paths
96- VENV_PATH = Path (WORKING_DIR , "env" )
101+ VENV_PATH = Path (SELF_PATH . parent , "env" )
97102SITE_PACKAGES_PATH = Path (VENV_PATH , SYS_SITE_PACKAGES )
98103SCRIPTS_PATH = Path (VENV_PATH , SYS_SCRIPTS )
99104# Translations path
100105# NOTE: These don't have to be available to the end-user, so the path points to the internal dir
101106LANG_PATH = _resource_path ("lang" )
102- # Other Paths
107+ # Other paths
103108LOG_PATH = Path (WORKING_DIR , "log.txt" )
104109DUMP_PATH = Path (WORKING_DIR , "dump.dat" )
105110LOCK_PATH = Path (WORKING_DIR , "lock.file" )
0 commit comments