Dans un système d'exploitation classique, les préférences utilisateurs sont souvent éparpillées dans de nombreux fichiers obscurs ou dans une "base de registre" complexe. Dans GrimOS, tout est centralisé. Le script core/config.py est l'unique responsable de la lecture et de la sauvegarde des paramètres globaux de l'ordinateur.
config/settings.json. Ce format a été choisi car il est naturellement supporté par Python, facile à lire pour un humain, et rapide à traiter.settings.json est supprimé ou corrompu, config.py est suffisamment robuste pour le détecter. Il possède un dictionnaire statique en mémoire avec des valeurs par défaut (thème de base, fond d'écran uni) qu'il utilisera pour assurer le démarrage de la machine, puis recréera le fichier manquant.get_setting(key) et set_setting(key, value). Chaque appel à set_setting écrit de façon synchrone sur le disque pour garantir que les préférences ne sont pas perdues en cas de coupure de courant.settings.json stocke le mot de passe administrateur en clair pour la fonction d'Autologin. Une modification majeure de sécurité consisterait à implémenter un module de chiffrement (comme cryptography.fernet) dans config.py pour chiffrer ce mot de passe.config/settings.json, mais ~/.config/grimos_settings.json spécifique à chaque compte Linux.import json
import os
def load_settings():
path = os.path.join(os.path.dirname(__file__), '..', 'config', 'settings.json')
try:
with open(path, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception as e:
print(f"Erreur chargement settings: {e}")
return {
"resolution": "1024x768",
"background": "gray",
"fullscreen": False
}
def load_applications():
path = os.path.join(os.path.dirname(__file__), '..', 'config', 'applications.json')
try:
with open(path, 'r', encoding='utf-8') as f:
return json.load(f)
except Exception as e:
print(f"Erreur chargement applications: {e}")
return []