From: Erfan Abdi Date: Thu, 30 Sep 2021 04:09:16 +0000 (+0330) Subject: session: Move waydroid user data to XDG_DATA_HOME X-Git-Tag: 1.1.1~3 X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/waydroid.git/commitdiff_plain/13360b5cf1bb8e714932170b41fbc1193e30c4f8?ds=sidebyside session: Move waydroid user data to XDG_DATA_HOME --- diff --git a/tools/actions/session_manager.py b/tools/actions/session_manager.py index 0262c1a..6b2f3eb 100644 --- a/tools/actions/session_manager.py +++ b/tools/actions/session_manager.py @@ -5,6 +5,7 @@ import os import time import signal import sys +import shutil import tools.config from tools import services @@ -20,6 +21,13 @@ def start(args, unlocked_cb=None): cfg = tools.config.load_session() waydroid_data = cfg["session"]["waydroid_data"] + #TODO: Drop me + old_user_waydroid = cfg["session"]["host_user"] + "/waydroid" + if os.path.isdir(old_user_waydroid): + if not os.path.isdir(waydroid_data): + shutil.move(old_user_waydroid, cfg["session"]["xdg_data_home"]) + else: + os.removedirs(old_user_waydroid) if not os.path.isdir(waydroid_data): os.makedirs(waydroid_data) dpi = tools.helpers.props.host_get(args, "ro.sf.lcd_density") diff --git a/tools/config/__init__.py b/tools/config/__init__.py index a4db795..ce1c6fa 100644 --- a/tools/config/__init__.py +++ b/tools/config/__init__.py @@ -26,6 +26,7 @@ session_config_keys = ["user_name", "user_id", "group_id", "host_user", + "xdg_data_home", "waydroid_data", "xdg_runtime_dir", "wayland_display", @@ -55,6 +56,7 @@ session_defaults = { "user_id": str(os.getuid()), "group_id": str(os.getgid()), "host_user": os.path.expanduser("~"), + "xdg_data_home": str(os.environ.get('XDG_DATA_HOME', os.path.expanduser("~") + "/.local/share")), "xdg_runtime_dir": str(os.environ.get('XDG_RUNTIME_DIR')), "wayland_display": str(os.environ.get('WAYLAND_DISPLAY')), "pulse_runtime_path": str(os.environ.get('PULSE_RUNTIME_PATH')), @@ -62,7 +64,7 @@ session_defaults = { "lcd_density": "0" } session_defaults["config_path"] = defaults["work"] + "/session.cfg" -session_defaults["waydroid_data"] = session_defaults["host_user"] + \ +session_defaults["waydroid_data"] = session_defaults["xdg_data_home"] + \ "/waydroid/data" if session_defaults["pulse_runtime_path"] == "None": session_defaults["pulse_runtime_path"] = session_defaults["xdg_runtime_dir"] + "/pulse" diff --git a/tools/services/user_manager.py b/tools/services/user_manager.py index fc6552b..09b6bab 100644 --- a/tools/services/user_manager.py +++ b/tools/services/user_manager.py @@ -21,6 +21,16 @@ def start(args, unlocked_cb=None): packageName = appInfo["packageName"] desktop_file_path = args.apps_dir + "/waydroid." + packageName + ".desktop" + #TODO: Drop me + if os.path.exists(desktop_file_path): + with open(desktop_file_path) as file: + filedata = file.read() + filedata = filedata.replace( + "Icon=" + args.old_waydroid_data, "Icon=" + args.waydroid_data) + with open(desktop_file_path, 'w') as file: + file.write(filedata) + os.chmod(desktop_file_path, 0o755) + if not os.path.exists(desktop_file_path): lines = ["[Desktop Entry]", "Type=Application"] lines.append("Name=" + appInfo["name"]) @@ -53,8 +63,11 @@ def start(args, unlocked_cb=None): logging.info("Android with user {} is ready".format(uid)) session_cfg = tools.config.load_session() args.waydroid_data = session_cfg["session"]["waydroid_data"] - args.host_user = session_cfg["session"]["host_user"] - args.apps_dir = args.host_user + "/.local/share/applications/" + #TODO: Drop me + args.old_waydroid_data = session_cfg["session"]["host_user"] + \ + "/waydroid/data" + args.apps_dir = session_cfg["session"]["xdg_data_home"] + \ + "/applications/" platformService = IPlatform.get_service(args) if platformService: