Use XDG/Flatpak standard directories for data storage

- 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/
This commit is contained in:
vesp 2025-12-22 11:13:45 +01:00
parent 7a45c4d576
commit 16b746adfa
3 changed files with 17 additions and 7 deletions

View File

@ -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" : [

View File

@ -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()

View File

@ -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()