Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/09/2015, à 14:04

titifier

ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

Bonjour,
je suis à la recherche d'une  commande de type SED pour ajouter un nouveau clavier dans le fichier  evdev.xml et cela depuis un batch.
Pour les besoins des tests le fichier est dans /home/olivier/Bureau/evdev.xml donc mon bureau.

avec la commande   
" sed -i -e 's/<modelList>/<modelList>\ code cavier HTML /' /home/olivier/Bureau/evdev.xml "
ouvre bien le ficher evdev.xml
et copie après la balise <modelList> code clavier HTML.

toutefois cela "plante quand je veux ajouter quelque chose comme

<model>
      <configItem>
        <name>Minimax-He</name>
        <description>AKOR Minimax-He</description>
	<languageList><iso639Id>Minimax-He</iso639Id></languageList>   
        <vendor>AKOR</vendor>
      </configItem>
</model>

A la place de "code clavier HTML".

Ainsi on pourra ajouter automatiquement un clavier depuis paramètre système \ saisie de texte \ ajout de clavier.
Naturellement si vous avez une autre solution je suis preneur.

Merci par avance.


Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 30/09/2015, à 19:43)

Hors ligne

#2 Le 28/09/2015, à 20:54

pingouinux

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

Bonsoir,
Tu peux essayer ceci (cette commande ne modifie pas le fichier d'origine) :

chaine="<modelList>"

ajout="<model>
      <configItem>
        <name>Minimax-He</name>
        <description>AKOR Minimax-He</description>
    <languageList><iso639Id>Minimax-He</iso639Id></languageList>
        <vendor>AKOR</vendor>
      </configItem>
</model>"

awk -v chaine="$chaine" -v ajout="$ajout" '{gsub(chaine,chaine""ajout);print}' /home/olivier/Bureau/evdev.xml

Hors ligne

#3 Le 30/09/2015, à 15:24

titifier

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

Bonjour et merci pour la réponse très rapide.
J’ai testé cela fonctionne, mais cela ne modifier pas le ficher.
le bloc doit être ajouté juste avant la ligne </layoutList>

Avec mon code  sed -i -e 's/<modelList>/<modelList>\ code clavier HTML /' /home/olivier/Bureau/evdev.xml cela se positionne bien après  </layoutList> dans evdev.xml sauf que je n'arrive pas a coper le code du clavier.

Un peu comme ça.

sed -i -e 's/<modelList>/<modelList>\ 
<model>
      <configItem>
        <name>Minimax-He</name>
        <description>AKOR Minimax-He</description>
    <languageList><iso639Id>Minimax-He</iso639Id></languageList>   
        <vendor>AKOR</vendor>
      </configItem>
</model>
 /' /home/olivier/Bureau/evdev.xml

Pas facile on sèche depuis une semaine.

encore merci


Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 30/09/2015, à 19:44)

Hors ligne

#4 Le 30/09/2015, à 15:41

pingouinux

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

..., mais cela ne modifier pas le ficher.

Normal, il faut d'abord savoir si la modif convient.

le bloc doit être ajouté juste avant la ligne </layoutList>
.......................................
cela se positionne bien après  </layoutList>

Il faudrait savoir…
Le mieux est que tu montres quelques lignes de ton fichier comprenant <modelList> et </layoutList>, et le résultat que tu veux obtenir.

Hors ligne

#5 Le 30/09/2015, à 16:09

titifier

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

rebonjour,
voici le début du fichier evdev.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
<xkbConfigRegistry version="1.1">
  <modelList> 
  ==============================================  mettre le code la
    <model>
      <configItem>
        <name>pc101</name>
        <description>Generic 101-key PC</description>
        <vendor>Generic</vendor>
      </configItem>
    </model>
    <model>
      <configItem>


============    code a installé    =========
<model>
      <configItem>
        <name>Minimax-He</name>
        <description>AKOR Minimax-He</description>
    <languageList><iso639Id>Minimax-He</iso639Id></languageList>   
        <vendor>AKOR</vendor>
      </configItem>
</model>


=============  code qui marche enfin chez lui   pour avoir une idee  ==============
sudo sed -i 's_<\/layoutList>_<layout>\
  <configItem>\
    <name>yi</name>\
\
    <shortDescription>yi</shortDescription>\
    <description>Yiddish (qwerty)</description>\
    <languageList>\
      <iso639Id>yid</iso639Id>\
    </languageList>\
  </configItem>\
  <variantList>\
    <variant>\
      <configItem>\
        <name>israeli</name>\
        <shortDescription>yi</shortDescription>\
        <description>Yiddish (Israeli)</description>\
      </configItem>\
    </variant>\
    <variant>\
     <configItem>\
      <name>israeli-phonetic</name>\
      <shortDescription>yi</shortDescription>\
      <description>Yiddish (Israeli phonetic)</description>\
     </configItem>\
 </variant>\
  </variantList>\
</layout>\
</layoutList>_g' /usr/share/X11/xkb/rules/evdev.xml &&

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Dernière modification par cqfd93 (Le 30/09/2015, à 19:45)

Hors ligne

#6 Le 30/09/2015, à 16:39

pingouinux

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

La commande en #2 devrait marcher ainsi (j'ai ajouté un \n après la chaîne recherchée)

chaine="<modelList>"

ajout="<model>
      <configItem>
        <name>Minimax-He</name>
        <description>AKOR Minimax-He</description>
    <languageList><iso639Id>Minimax-He</iso639Id></languageList>
        <vendor>AKOR</vendor>
      </configItem>
</model>"

awk -v chaine="$chaine" -v ajout="$ajout" '{gsub(chaine,chaine"\n"ajout);print}' /home/olivier/Bureau/evdev.xml >fichier_temporaire

et si fichier_temporaire est correct

mv fichier_temporaire /home/olivier/Bureau/evdev.xml

Je te conseiile de faire auparavant une sauvegarde de ton fichier d'origine (au cas où…), à supprimer ensuite si tout s'est bien passé.

Hors ligne

#7 Le 30/09/2015, à 16:45

titifier

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

je teste ça ce soir merci

Hors ligne

#8 Le 30/09/2015, à 16:57

pingouinux

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

Avec sed

sed 's_<modelList>_&\
<model>\
      <configItem>\
        <name>Minimax-He</name>\
        <description>AKOR Minimax-He</description>\
    <languageList><iso639Id>Minimax-He</iso639Id></languageList>\
        <vendor>AKOR</vendor>\
      </configItem>\
</model>_' /home/olivier/Bureau/evdev.xml

et si c'est bon

sed -i .................

Hors ligne

#9 Le 02/10/2015, à 10:04

titifier

Re : ajout d'un nouveau clavier dans evdev.xml depuis un fichier batch

Bonjour,
franchement merci cela marche avec sed -i.
Je te dois une petite explication.
Je suis actuellement très content de mon clavier minimax. (je n'ai rien a voir avec la société, même pas de très loin).
Je suis en train d’adapter pour la communauté Ubuntu.
De manière a avoir le français / hébreu / hébreu bilibilique / et après les autres langues comme Russes et arabes.
Donc encore grands merci pour ton aide.

Hors ligne