diff --git a/dzgui/util/flatpak.py b/dzgui/util/flatpak.py new file mode 100644 index 0000000..21cd062 --- /dev/null +++ b/dzgui/util/flatpak.py @@ -0,0 +1,29 @@ +import logging +import subprocess + +from dzgui.const.constants import APP_NAME, FLATPAK_APPID, GTK_APP_ID + +logger = logging.getLogger(APP_NAME) + + +def apply_overrides(xdg: dict[str, str]) -> None: + try: + # NOTE: D-Bus registration required for sandbox + args = [ + "flatpak", + "--user", + "override" f"--own-name={GTK_APP_ID}", + FLATPAK_APPID, + ] + subprocess.run([*args], capture_output=True) + + for path in xdg.values(): + args = [ + "flatpak", + "--user", + "override" f"--filesystem={path}", + FLATPAK_APPID, + ] + subprocess.run([*args], capture_output=True) + except Exception as e: + logger.critical(e)