Page 1 sur 1

[openbox] modifier le rc.xml en ligne de commande (résolu)

Publié : sam. 15 févr. 2020, 18:14
par Uzo67
Bonjour à tous,
Ancien linuxien, nouveau sur archlinux (que j'adore !), je suis passé depuis peu à openbox que j'adore aussi. J'ai fait un petit script simpliste en bash pour changer de thème en un clic sans interface graphique du genre obconf et lxappearance (typiquement, j'ai un thème sombre et un thème clair, je change les décorations ob mais aussi les thèmes gtk2 et gtk3, les icones, en copiant les fichiers de configurations). Ça marche très bien mais j'aimerais faire quelque-chose de plus propre pour le rc.xml où seule la partie suivante doit être changée :
<theme>
<name>le_theme_sombre</name>

en

<theme>
<name>le_theme_clair</name>

Or, pour le moment, j'écrase complètement le fichier avec

Code : Tout sélectionner

cp rc.xml_du_theme_clair rc.xml
Quelle serait la manière de faire cela proprement et joliement à coup de "echo" et de "sed" et autres commandes bash que je ne maitrise pas bien encore ?
Merci :-)

Re: [openbox] modifier le rc.xml en ligne de commande

Publié : sam. 15 févr. 2020, 19:13
par papajoke
Bonjour,
:google: par exemple
un solf traitant spécifiquement du xml sera toujours bien meilleur qu'un sed (<name> est toujours après <theme> sans exception ?) il n'y a pas d'ordre dans le xml ni de retour à la ligne obligatoire ...

Re: [openbox] modifier le rc.xml en ligne de commande

Publié : sam. 15 févr. 2020, 19:29
par Uzo67
Merci papajoke, pour le lien, je vais lire cela. Le "name" apparait après le "theme" mais il y a de nombreux autres "name" dans le rc.xml, par contre une seule occurence de "theme".

Re: [openbox] modifier le rc.xml en ligne de commande

Publié : sam. 15 févr. 2020, 19:46
par sukolyn
salut,

si tu dois ne pas modifier du XML très souvent, un copier/coller, ou faire/modifier un lien symbolique de clair/sombre vers le fichier de conf, c'est propre.
si tu dois manipuler du XML fréquemment, investis un peu de temps dans les outils destinés à effectuer ces manipulations pro-prement/grammatiquement : xmlstarlet, xalan, python, perl...

Re: [openbox] modifier le rc.xml en ligne de commande

Publié : sam. 15 févr. 2020, 22:24
par Uzo67
Après avoir lu attentivement le lien en anglais, il apparait que sed convient dans mon cas car je modifie seulement la ligne dans lequel le terme est recherché (c.a.d que sed recherche "theme_sombre" et le remplace par "theme_clair" donc pas de problème de mise en page).
Merci pour vos réponses !

Re: [openbox] modifier le rc.xml en ligne de commande (résolu)

Publié : dim. 16 févr. 2020, 14:23
par Uzo67
Hello,
Pour info, car j'ai tout de même voulu tester xmlstarlet qui est effectivement plus approprié, voici comment procéder avec cet outil :

Code : Tout sélectionner

xmlstarlet edit --inplace \
           -N o="http://openbox.org/3.4/rc" \
           --update "//o:openbox_config/o:theme/o:name" \
           --value 'LE_NOM_DU_THEME' \
           ~/.config/openbox/rc.xml

Re: [openbox] modifier le rc.xml en ligne de commande (résolu)

Publié : mar. 18 févr. 2020, 04:00
par sukolyn
+1

:bravo: