From 16b746adfa9cf8ac95873d05e4f7459491a666ee Mon Sep 17 00:00:00 2001 From: vesp Date: Mon, 22 Dec 2025 11:13:45 +0100 Subject: [PATCH] Use XDG/Flatpak standard directories for data storage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update history_manager to use GLib.get_user_config_dir() - Update project_manager to use GLib.get_user_data_dir() - Remove old filesystem permission from Flatpak manifest - Fix Flatpak manifest: runtime version 49→47, correct git source URL Data now stored in: - Flatpak: ~/.var/app/cz.vesp.roster/{config,data}/cz.vesp.roster/ - Native: ~/.{config,local/share}/cz.vesp.roster/ --- cz.vesp.roster.json | 7 +++---- src/history_manager.py | 8 +++++++- src/project_manager.py | 9 +++++++-- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/cz.vesp.roster.json b/cz.vesp.roster.json index 733a6e3..d3ce5f0 100644 --- a/cz.vesp.roster.json +++ b/cz.vesp.roster.json @@ -1,7 +1,7 @@ { "id" : "cz.vesp.roster", "runtime" : "org.gnome.Platform", - "runtime-version" : "master", + "runtime-version" : "47", "sdk" : "org.gnome.Sdk", "command" : "roster", "finish-args" : [ @@ -9,8 +9,7 @@ "--share=ipc", "--socket=fallback-x11", "--device=dri", - "--socket=wayland", - "--filesystem=xdg-config/roster:create" + "--socket=wayland" ], "cleanup" : [ "/include", @@ -43,7 +42,7 @@ "sources" : [ { "type" : "git", - "url" : "file:///home/pavelb/GnomeBuilderProjects" + "url" : "file:///home/pavelb/GnomeBuilderProjects/Roster" } ], "config-opts" : [ diff --git a/src/history_manager.py b/src/history_manager.py index ec8140c..b527854 100644 --- a/src/history_manager.py +++ b/src/history_manager.py @@ -21,6 +21,9 @@ import json import os from pathlib import Path from typing import List +import gi +gi.require_version('GLib', '2.0') +from gi.repository import GLib from .models import HistoryEntry @@ -28,7 +31,10 @@ class HistoryManager: """Manages request history persistence to JSON file.""" def __init__(self): - self.config_dir = Path.home() / '.config' / 'roster' + # Use XDG config directory (works for both Flatpak and native) + # Flatpak: ~/.var/app/cz.vesp.roster/config/cz.vesp.roster + # Native: ~/.config/cz.vesp.roster + self.config_dir = Path(GLib.get_user_config_dir()) / 'cz.vesp.roster' self.history_file = self.config_dir / 'history.json' self._ensure_config_dir() diff --git a/src/project_manager.py b/src/project_manager.py index 9e6ec35..86022c6 100644 --- a/src/project_manager.py +++ b/src/project_manager.py @@ -22,6 +22,9 @@ import uuid from pathlib import Path from typing import List, Optional from datetime import datetime, timezone +import gi +gi.require_version('GLib', '2.0') +from gi.repository import GLib from .models import Project, SavedRequest, HttpRequest @@ -29,8 +32,10 @@ class ProjectManager: """Manages project and saved request persistence.""" def __init__(self): - # Store in ~/.roster/ (not ~/.config/) for git versioning - self.data_dir = Path.home() / '.roster' + # Use XDG data directory (works for both Flatpak and native) + # Flatpak: ~/.var/app/cz.vesp.roster/data/cz.vesp.roster + # Native: ~/.local/share/cz.vesp.roster + self.data_dir = Path(GLib.get_user_data_dir()) / 'cz.vesp.roster' self.projects_file = self.data_dir / 'requests.json' self._ensure_data_dir()