Configuration

Le module cfg permet d'interagir avec la configuration générale du système, et avec celle de l'application en cours en particulier (même s'il s'agit ici uniquement de la configuration de base, un module dédié sera ajouté prochainement pour la lecture des fichiers concernés).

Fonctions disponibles

La fonction open permet d'ouvrir automatiquement un fichier dont le chemin d'accès est passé en paramètre avec le programme par défaut.

La fonction edit devrait faire pariel, mais en choisissant plutôt l'éditeur par défaut. Sauf que comme je ne sais pas encore faire ça, elle déclenche pour l'instant une NotImplementedError. Donc, TODO.

La classe cache est un dictionnaire spécialisé utilisé par les deux objets ci-dessous. Il fonctionne en temps normal comme un dictionnaire ordinaire, mais est également un callable : appelé comme une fonction avec un chemin d'accès en premier paramètre suivie par une liste de clefs, il va noter la date de dernière modification du fichier passé, et retirera ces clefs du dictionnaire s'il s'avère que le fichier a été modifié sur le disque (il s'agit d'une vérification au moment de l'accès au contenu du dictionnaire, et non d'une surveillance continue du fichier sur le disque). Un nouvel appel avec le même chemin d'accès permet de changer la liste des clefs concernées, ou de retirer cette surveillance si aucune clef n'est fournie. Plusieurs fichiers peuvent être « surveillés » simultanément.

L'objet specialpath permet d'accéder aux répertoires particuliers du système. Il connaît les répertoires suivants :

L'accès à ces différents répertoires peut se faire (de façon insensible à la casse) comme des attributs ou comme des clefs de l'objet. L'objet peut également être appelé avec l'un de ces répertoires en premier paramètre suivi d'une adresse plus précise, auquel cas il renverra un chemin complet.

L'objet icontheme permet d'identifier le thème d'icône actuellement actif, ce qui sert notamment pour le module d'images. Comme il existe plusieurs moyens de définir un thème d'icônes et qu'ils ne contiennent pas forcément les mêmes informations, les thèmes suivants peuvent être accessibles, aussi bien comme des clefs que comme des attributs :

Appeler l'objet comme une fonction en lui passant un ou plusieurs thèmes comme paramètres renverra le premier thème trouvé dans cette liste (ou None sans déclencher d'erreur si aucun n'est dispo). Si la liste est vide, on passera tous les thèmes disponibles en revue dans l'ordre sus-mentionné. TODO : comment définit-on un thème d'icônes avec Qt ou d'autres bibliothèques graphiques ? Il faudrait également prendre en compte les gtk.ini spécifiques des différentes applications (voir ci-dessous).

TODO : Par défaut, les applications GTK utilisent toutes le thème général, mais il est possible de définit un thème GTK spécifique pour une application donnée. Ce module serait sans doute le meilleur endroit où placer le code destiné à chercher un « gtk.ini » et un « gtk.css » dans le répertoire de configuration de l'appli en cours et à les appliquer.