Configuration file formats

Updated 4 Novembre 2026

Un format est ce que les outils "savent" de la syntaxe d'un type particulier de fichier de configuration. Vous l'indiquez dans l'en-tête du modèle avec le paramètre format=, et il définit comment le corps du modèle sera fusionné avec le fichier déjà existant : ce qui compte comme enregistrement, ce qui sépare le nom de sa valeur, à quoi ressemblent les commentaires et comment supprimer un paramètre.

Il n'y a qu'une règle de choix : le format se choisit d'après la syntaxe du fichier cible, et non d'après ce qui est le plus simple à écrire. Le corps du modèle doit ressembler à un morceau d'un vrai fichier de configuration - l'ordre des lignes, les guillemets et les commentaires du fichier d'origine sont alors conservés.

Si format= n'est pas indiqué, le fichier est considéré comme "raw" (raw) et aucune fusion n'est effectuée : la cible est réécrite entièrement. Pour une réécriture complète assumée, c'est normal, mais vous devez ajouter comment= avec le caractère de commentaire que le programme cible comprend ; sinon l'en-tête de service "Modified Calculate Utilities" rendra le fichier illisible pour lui.

Trois familles

Fichiers directifs

Analyse par expressions régulières, la classe objShareoù commence un commentaire, par quoi la ligne est découpée et quel séparateur est réinséré.

Fichiers ini avec sections

La classe samba et ses héritiers : samba, kde, ldap, compiz, plasma. Groupes entre crochets et paires nom/valeur ; la suppression est !ключ=.

Formats structurels

Analyse en objet, non ligne par ligne

Analyse en objet, non ligne par ligne : xml_xfce, xml_xfcepanel, xml_gconf, xml_gconf_tree sont du XML ; json est du JSON ; world est une liste d'atomes ; kernel est le .config du noyau ; plus les formats qui ne décrivent pas du tout le texte du fichier : patch, , diff, , contents, , sqlite, , dconf, , backgrounds..

patch, , diff, , contents, , sqlite, , dconf, , backgrounds..

La liste complète avec les détails est dans la référence des formats.

Choisir : réponses courtes

  • Configurations KDE/GNOME, *.desktop, *.src, fichiers ini avec groupes imbriqués [A][B] → kde.
  • smb.conf, fichiers Calculate *.env, ini classiques → samba.
  • /etc/conf.d/* (scripts openrc) → openrc.
  • Autres fichiers avec paires clé = valeur et sans sections → procmail.
  • Un fichier de format inconnu où vous devez changer deux lignes → patch : il fonctionne avec des expressions régulières et ne demande aucune analyse de la syntaxe.
  • Vous devez appliquer un correctif aux sources d'un paquet → diff.
  • Une configuration Xfce/gconf → xml_xfce / xml_gconf.

kde contre samba : la vraie différence

Formellement, kde est une extension de samba et le modèle est commun : groupes entre crochets, clé = valeur, commentaires conservés à leur place. Les différences sont au nombre de trois, et toutes se voient dans le résultat.

Groupes imbriqués

Seul kde comprend les groupes imbriqués. Un fichier comme

[AC][DPMSControl]
idleTime=900

dans kde est conservé tel quel, tandis que dans samba la partie imbriquée de l'en-tête est perdue - il ne reste que [AC]. C'est aussi de là que vient format=plasma pour les paramètres KDE à groupes multi-niveaux.

Les préfixes + et -

Les préfixes + et - fonctionnent uniquement dans samba. Dans samba, l'enregistrement +browse list = no met à jour la vraie clé browse list ; dans kde le signe reste à l'intérieur du nom, et un paramètre portant le nom littéral +browse list est créé, qui ne correspondra jamais à un existant. Il en va de même pour -. Donc dans kde, vous devez écrire la forme ordinaire clé = valeur pour la définition et !ключ= для удаления — последнее работает в обоих форматах одинаково.

Commentaires

Dans samba, une ligne compte comme commentaire, qu'elle commence par # ou par ;; dans kde, uniquement #. Cela ne change rien à l'apparence du résultat, mais une ligne ; dans un modèle kde cesse d'être un commentaire.

Ce qui reste identique

Ce qui reste identique : les espaces autour de =, un # en ligne dans une valeur, un corps de modèle vide, et l'ordre et les guillemets conservés. Donc pour un ini simple sans groupes imbriqués et sans +/-, le résultat sera le même - fiez-vous au format déjà utilisé dans le système pour ce fichier : une correspondance écarte les situations où deux modèles traitent un même fichier différemment.

une correspondance écarte les situations où deux modèles traitent un même fichier différemment.

Vérification du comportement de votre propre format

Pour voir rapidement ce qui en sortira sans toucher au système, utilisez une fusion hors ligne - voir la liste de contrôle de diagnostic. Pour de vrais exemples, il est utile de se référer à l'arbre calculate : pour presque tout type de fichier de configuration, il y a déjà un modèle d'exemple.

Voir aussi