Je ne suis pas développeur gnome mais ne dirais tu pas un peu n'importe quoi à propos de GConf ? Les fichiers de configurations sont trivialement simples et il est très facile de comprendre comment cela marche et de les éditer à la main.
Je ne savais pas comment ca marchait il y a dix minutes. Mais en utilisant son cerveau, ce n'est pas très difficile à faire soit même.
1- Ouvrir le schema de l'application. Ici ça sera /etc/gconf/schemas/desktop_gnome_background.schemas
2- Identifier la clé à configurer dans ce fichier. On trouve facilement, le nom de la clé, le type de valeur, la valeur par défaut et la documentation.
3- Ouvrir le fichier de configuration: ~/.gconf/desktop/gnome/background/%gconf.xml
4- Ajouter ou modifier la clé:
<entry name="picture_filename" mtime="1262709633" type="string">
<stringvalue>/tmp/1.jpg</stringvalue>
</entry>
C'est clair que c'est atrocement compliqué et totalement hors de portée... Tu peux nous proposer une solution fonctionnellement équivalente et beaucoup plus simple ? Si tu trouves tu pourras proposer un patch pour ajouter un nouveau backend !
Ce que tu critiques c'est une limitation actuelle de gconf qui n'a strictement rien avoir avec les fichiers de configuration. Gconf est un serveur de configuration qui offre une API pour configurer et consulter les valeurs et de les stocker de manière pérenne en utilisant un backend. Par défaut le backend XML est utilisé. Le démon tourne en permanence, il doit être utiliser pour consulter la valeur d'une clé et peut être utilisé pour la configurer. Il s'occupe aussi de notifier les applications quand une clé change. Comme ils font bien les choses chez gnome, voir http://library.gnome.org/devel/gconf/stable/gconf-gconf-backend.html , il est prévu qu'un backend puisse notifier qu'une valeur a été changé sans passer par l'API ( ce qui correspond dans notre cas à une édition manuelle du fichier XML). Actuellement le backend XML n'implémente pas cette fonctionnalité, cf NULL, /* set_notify_func */ ligne 231 dans xml-backend.c
On peut très facilement imaginer pourquoi c'est difficile à implémenter: gestion des conflits, réconciliation, état incohérents etc. Si le sujet t'intéresse, tu peux proposer un patch je pense.
Alors tu peux très bien faire la manip à la main, mais actuellement il faut que tu arrêtes ton démon gconf, que tu édites le fichier et que tu redémarre le démon.
Si un dev gnome veut me corriger il est le bienvenu ! Certains ont la critique et le préjugé facile je trouve...
[^] # Re: script
Posté par ckyl . En réponse au journal Requête aux devs de logiciels libres. Évalué à 2.
Je ne savais pas comment ca marchait il y a dix minutes. Mais en utilisant son cerveau, ce n'est pas très difficile à faire soit même.
1- Ouvrir le schema de l'application. Ici ça sera /etc/gconf/schemas/desktop_gnome_background.schemas
2- Identifier la clé à configurer dans ce fichier. On trouve facilement, le nom de la clé, le type de valeur, la valeur par défaut et la documentation.
3- Ouvrir le fichier de configuration: ~/.gconf/desktop/gnome/background/%gconf.xml
4- Ajouter ou modifier la clé:
<entry name="picture_filename" mtime="1262709633" type="string">
<stringvalue>/tmp/1.jpg</stringvalue>
</entry>
C'est clair que c'est atrocement compliqué et totalement hors de portée... Tu peux nous proposer une solution fonctionnellement équivalente et beaucoup plus simple ? Si tu trouves tu pourras proposer un patch pour ajouter un nouveau backend !
Ce que tu critiques c'est une limitation actuelle de gconf qui n'a strictement rien avoir avec les fichiers de configuration. Gconf est un serveur de configuration qui offre une API pour configurer et consulter les valeurs et de les stocker de manière pérenne en utilisant un backend. Par défaut le backend XML est utilisé. Le démon tourne en permanence, il doit être utiliser pour consulter la valeur d'une clé et peut être utilisé pour la configurer. Il s'occupe aussi de notifier les applications quand une clé change. Comme ils font bien les choses chez gnome, voir http://library.gnome.org/devel/gconf/stable/gconf-gconf-backend.html , il est prévu qu'un backend puisse notifier qu'une valeur a été changé sans passer par l'API ( ce qui correspond dans notre cas à une édition manuelle du fichier XML). Actuellement le backend XML n'implémente pas cette fonctionnalité, cf NULL, /* set_notify_func */ ligne 231 dans xml-backend.c
On peut très facilement imaginer pourquoi c'est difficile à implémenter: gestion des conflits, réconciliation, état incohérents etc. Si le sujet t'intéresse, tu peux proposer un patch je pense.
Alors tu peux très bien faire la manip à la main, mais actuellement il faut que tu arrêtes ton démon gconf, que tu édites le fichier et que tu redémarre le démon.
Si un dev gnome veut me corriger il est le bienvenu ! Certains ont la critique et le préjugé facile je trouve...