Files
2025-03-31 20:14:11 +02:00

46 lines
1.1 KiB
Python

import os
from ignis.options_manager import OptionsGroup, OptionsManager
from ignis import DATA_DIR, CACHE_DIR # type: ignore
USER_OPTIONS_FILE = f"{DATA_DIR}/user_options.json"
OLD_USER_OPTIONS_FILE = f"{CACHE_DIR}/user_options.json"
# FIXME: remove someday
def _migrate_old_options_file() -> None:
with open(OLD_USER_OPTIONS_FILE) as f:
data = f.read()
with open(USER_OPTIONS_FILE, "w") as f:
f.write(data)
class UserOptions(OptionsManager):
def __init__(self):
if not os.path.exists(USER_OPTIONS_FILE) and os.path.exists(
OLD_USER_OPTIONS_FILE
):
_migrate_old_options_file()
try:
super().__init__(file=USER_OPTIONS_FILE)
except FileNotFoundError:
pass
class User(OptionsGroup):
avatar: str = f"/var/lib/AccountsService/icons/{os.getenv('USER')}"
class Settings(OptionsGroup):
last_page: int = 0
class Material(OptionsGroup):
dark_mode: bool = True
colors: dict[str, str] = {}
user = User()
settings = Settings()
material = Material()
user_options = UserOptions()