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

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Uzo67
Hankyu
Messages : 11
Inscription : sam. 15 févr. 2020, 17:54

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

Message 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 :-)
Dernière modification par Uzo67 le sam. 15 févr. 2020, 22:27, modifié 1 fois.
Avatar de l’utilisateur
papajoke
Elfe
Messages : 773
Inscription : sam. 30 août 2014, 19:54

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

Message 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 ...
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
Uzo67
Hankyu
Messages : 11
Inscription : sam. 15 févr. 2020, 17:54

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

Message 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".
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

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

Message 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...
Dernière modification par sukolyn le dim. 16 févr. 2020, 00:30, modifié 1 fois.
Uzo67
Hankyu
Messages : 11
Inscription : sam. 15 févr. 2020, 17:54

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

Message 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 !
Uzo67
Hankyu
Messages : 11
Inscription : sam. 15 févr. 2020, 17:54

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

Message 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
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

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

Message par sukolyn »

+1

:bravo:
Répondre