Layout azerty pour matchbox-keyboard

De openmoko-fr.

Après quelques recherches infructueuses sur le Net j'ai fini par me faire mon propre layout azerty pour le clavier virtuel matchbox-keyboard. C'est un fichier XML à placer dans /usr/share/matchbox-keyboard.

Sur mon FreeRunner je l'ai appelé keyboard-azerty.xml, et j'ai édité la ligne 20 du fichier /usr/bin/matchbox-keyboard-toggle pour le lancer automatiquement :

       os.system("matchbox-keyboard azerty &")

Une autre méthode est de sauvegarder le fichier keyboard.xml en keyboard-default.xml et de créer un lien "keyboard.xml" vers "keyboard-azerty.xml".

Le contenu du fichier layout est reproduit intégralement ci-dessous. Il n'y a plus qu'à copier/coller.

Remarque : le layout n'est pas du strict azerty car matchbox a vraisemblablement des combinaisons qwerty codées en dur. Par exemple, impossible d'avoir le "/" par une touche shiftée : on obtient invariablement un "?" à la place.

Sommaire

Update 07/10/2008

Un autre layout azerty est disponible ici. Avec les screenshots qui vont bien.

Quelques copies d'écran

Azerty.png

Azerty-shift-caps.png

Azerty-altgr.png

Le fichier layout

<?xml version="1.0" encoding="UTF-8"?>
<keyboard>
<options>
</options>
<layout id="Azerty keyboard">
  <row>
    <space width="500" extended="true"/>
    <key fill="true">
          <default display="Esc" action="escape" />
    </key>
    <key>
          <default display="'" />
    </key>
    <key obey-caps='true'>
          <default display="1" />
          <shifted display="&amp;" />                
    </key>
    <key obey-caps='true'>
          <default display="2" />
          <shifted display="é" />                
          <mod1    display="~" />
    </key>
    <key obey-caps='true'>
          <default display="3" />
          <shifted display='"' />
          <mod1    display="#" />               
    </key>
    <key obey-caps='true'>
          <default display="4" />                
          <shifted display="'" />
          <mod1    display="{" />               
    </key>
    <key obey-caps='true'>
          <default display="5" />                
          <shifted display="(" />
          <mod1    display="[" />               
    </key>
    <key obey-caps='true'>
          <default display="6" />                
          <mod1    display="|" />               
    </key>
    <key obey-caps='true'>
          <default display="7" />                
          <shifted display="è" />
          <mod1    display="`" />               
    </key>
    <key obey-caps='true'>
          <default display="8" />                
          <shifted display="_" />
          <mod1    display="\" />               
    </key>
    <key obey-caps='true'>
          <default display="9" />                
          <shifted display="ç" />
          <mod1    display="^" />               
    </key>
    <key obey-caps='true'>
          <default display="0" />                
          <shifted display="a" />
          <mod1    display="@" />               
    </key>
    <key obey-caps='true'>
          <default display="-" />                
          <shifted display=")" />
          <mod1    display="]" />               
    </key>
    <key obey-caps='true'>
          <default display="=" />
          <shifted display="+" />                
          <mod1    display="}" />               
    </key>
    <key fill="true">
          <default display="Bksp" action="backspace"/>
    </key>
    <key>
          <default display="H." action="home"/>
    </key>
    <key>
          <default display="Up" action="pageup"/>
    </key>
  </row>
  <row>
    <space width="500" extended="true"/>
    <key fill="true">
          <default display="Tab" action="tab"/>                
    </key>
    <key obey-caps='true'>
          <default display="a" />                
          <shifted display="A" />
    </key>
    <key obey-caps='true'>
          <default display="z" />                
          <shifted display="Z" />
    </key>
    <key obey-caps='true'>
          <default    display="e" />                
          <shifted display="E" />
          <mod1 display="E" />
    </key>
    <key obey-caps='true'>
          <default display="r" />                
          <shifted display="R" />
    </key>
    <key obey-caps='true'>
          <default display="t" />                
          <shifted display="T" />
    </key>
    <key obey-caps='true'>
          <default display="y" />                
          <shifted display="Y" />
    </key>
    <key obey-caps='true'>
          <default display="u" />                
          <shifted display="U" />
    </key>
    <key obey-caps='true'>
          <default display="i" />                
          <shifted display="I" />
    </key>
    <key obey-caps='true'>
          <default display="o" />                
          <shifted display="O" />
    </key>
    <key obey-caps='true'>
          <default display="p" />                
          <shifted display="P" />
    </key>
    <key>
          <default display="^" />                
    </key>
    <key>
          <default display="$" />                
    </key>
    <key>
          <default display="E." action="end"/>
    </key>
    <key>
          <default display="Dn" action="pagedown"/>
    </key>
  </row>
  <row>
    <space width="500" extended="true"/>
    <key fill="true">
          <default display="Caps" action="modifier:caps"/>                
    </key>
    <key obey-caps='true'>
          <default display="q" />                
          <shifted display="Q" />
    </key>
    <key obey-caps='true'>
          <default display="s" />                
          <shifted display="S" />
    </key>
    <key obey-caps='true'>
          <default display="d" />                
          <shifted display="D" />
    </key>
    <key obey-caps='true'>
          <default display="f" />                
          <shifted display="F" />
    </key>
    <key obey-caps='true'>
          <default display="g" />                
          <shifted display="G" />
    </key>
    <key obey-caps='true'>
          <default display="h" />                
          <shifted display="H" />
    </key>
    <key obey-caps='true'>
          <default display="j" />                
          <shifted display="J" />
    </key>
    <key obey-caps='true'>
          <default display="k" />                
          <shifted display="K" />
    </key>
    <key obey-caps='true'>
          <default display="l" />                
          <shifted display="L" />
    </key>
    <key>
          <default display="m" />                
          <shifted display="M" />
    </key>
    <key>
          <default display="*" />                
          <shifted display="%" />
    </key>
    <key fill="true">
          <default display="Ret" action="return"/>
    </key>
    <space width="500" extended="true"/>
    <space width="4000"  extended="true" />
    <space width="4000"  extended="true" />
    <space width="500" extended="true"/>
  </row>
  <row>
    <space width="500" extended="true"/>
    <key fill="true">
          <default display="Shift" action="modifier:shift"/>                
    </key>
    <key>
          <default display="<lt;" />
          <shifted display=">gt;" />                
    </key>
    <key obey-caps='true'>
          <default display="w" />                
          <shifted display="W" />
    </key>
    <key obey-caps='true'>
          <default display="x" />                
          <shifted display="X" />
    </key>
    <key obey-caps='true'>
          <default display="c" />                
          <shifted display="C" />
    </key>
    <key obey-caps='true'>
          <default display="v" />                
          <shifted display="V" />
    </key>
    <key obey-caps='true'>
          <default display="b" />                
          <shifted display="B" />
    </key>
    <key obey-caps='true'>
          <default display="n" />                
          <shifted display="N" />
    </key>
    <key>
          <default display="," />                
          <shifted display="?" />
    </key>
    <key>
          <default display="." />                
          <shifted display="!" />
    </key>
    <key>
          <default display=";" />                
          <shifted display=":" />
    </key>
    <key>
          <default display="/" />                
    </key>
    <key fill="true">
          <default display="Shift" action="modifier:shift"/>                
    </key>
    <space width="500" extended="true"/>
    <space width="4000"  extended="true" />
    <space width="4000"  extended="true" />
    <space width="500" extended="true"/>
 </row>
  <row>
    <space width="500" extended="true"/>
    <key fill="true">
          <default display="Ctrl" action="modifier:ctrl"/>                
    </key>
    <key>
          <default display="Alt" action="modifier:alt"/>                
    </key>
    <key width="12000">
          <default display=" " action="space" />                
    </key>
    <key>
          <default display="AltGr" action="modifier:mod1"/>                
    </key>
    <key>
          <default display="Del" action="delete"/>                
    </key>
    <key>
          <default display="^" action="up" />                
    </key>
    <key>
          <default display="V" action="down" />                
    </key>
    <key>
          <default display="<lt;" action="left" />                
    </key>
    <key>
          <default display=">qt;" action="right" />                
    </key>
    <space width="500" extended="true"/>
    <space width="4000"  extended="true" />
    <space width="4000"  extended="true" />
    <space width="500" extended="true"/>
</row>
</layout>
</keyboard>

Une autre version (avec des caractères spéciaux pour certaines touches)

<?xml version="1.0" encoding="UTF-8"?>
	<keyboard>
		<options>
		</options>
		<layout id="azerty">
			<row>
				<space width="500" extended="true" />
				<key fill="true">
					<default display="Esc" action="escape" />
				</key>
				<key>
					<default display="'" />
				</key>
				<key>
					<default display="1" />
					<shifted display="&" />
				</key>
				<key>
					<default display="2" />
					<shifted display="é" />
					<mod1 display="~" />
				</key>
				<key>
					<default display="3" />
					<shifted display='"' />
					<mod1 display="#" />
				</key>
				<key>
					<default display="4" />
					<shifted display="'" />
					<mod1 display="{" />
				</key>
				<key>
					<default display="5" />
					<shifted display="(" />
					<mod1 display="[" />
				</key>
				<key>
					<default display="6" />
					<mod1 display="|" />
				</key>
				<key>
					<default display="7" />
					<shifted display="è" />
					<mod1 display="`" />
				</key>
				<key>
					<default display="8" />
					<shifted display="_" />
					<mod1 display="\" />
				</key>
				<key>
					<default display="9" />
					<shifted display="ç" />
					<mod1 display="^" />
				</key>
				<key>
					<default display="0" />
					<shifted display="a" />
					<mod1 display="@" />
				</key>
				<key>
					<default display="-" />
					<shifted display=")" />
					<mod1 display="]" />
				</key>
				<key>
					<default display="=" />
					<shifted display="+" />
					<mod1 display="}" />
				</key>
				<key fill="true">
					<default display="⟵" action="backspace" />
				</key>
				<key>
					<default display="⇱" action="home" />
				</key>
				<key>
					<default display="⇞" action="pageup" />
				</key>
			</row>

			<row>
				<space width="500" extended="true" />
				<key fill="true">
					<default display="↹" action="tab" />
				</key>
				<key obey-caps='true'>
					<default display="a" />
					<shifted display="A" />
				</key>
				<key obey-caps='true'>
					<default display="z" />
					<shifted display="Z" />
				</key>
				<key obey-caps='true'>
					<default		display="e" />
					<shifted display="E" />
					<mod1 display="E" />
				</key>
				<key obey-caps='true'>
					<default display="r" />
					<shifted display="R" />
				</key>
				<key obey-caps='true'>
					<default display="t" />
					<shifted display="T" />
				</key>
				<key obey-caps='true'>
					<default display="y" />
					<shifted display="Y" />
				</key>
				<key obey-caps='true'>
					<default display="u" />
					<shifted display="U" />
				</key>
				<key obey-caps='true'>
					<default display="i" />
					<shifted display="I" />
				</key>
				<key obey-caps='true'>
					<default display="o" />
					<shifted display="O" />
				</key>
				<key obey-caps='true'>
					<default display="p" />
					<shifted display="P" />
				</key>
				<key>
					<default display="^" />
				</key>
				<key>
					<default display="$" />
				</key>
				<key>
					<default display="⇲" action="end" />
				</key>
				<key>
					<default display="⇞" action="pagedown" />
				</key>
			</row>

			<row>
				<space width="500" extended="true" />
				<key fill="true">
					<default display="Caps" action="modifier:caps" />
				</key>
				<key obey-caps='true'>
					<default display="q" />
					<shifted display="Q" />
				</key>
				<key obey-caps='true'>
					<default display="s" />
					<shifted display="S" />
				</key>
				<key obey-caps='true'>
					<default display="d" />
					<shifted display="D" />
				</key>
				<key obey-caps='true'>
					<default display="f" />
					<shifted display="F" />
				</key>
				<key obey-caps='true'>
					<default display="g" />
					<shifted display="G" />
				</key>
				<key obey-caps='true'>
					<default display="h" />
					<shifted display="H" />
				</key>
				<key obey-caps='true'>
					<default display="j" />
					<shifted display="J" />
				</key>
				<key obey-caps='true'>
					<default display="k" />
					<shifted display="K" />
				</key>
				<key obey-caps='true'>
					<default display="l" />
					<shifted display="L" />
				</key>
				<key>
					<default display="m" />
					<shifted display="M" />
				</key>
				<key>
					<default display="*" />
					<shifted display="%" />
				</key>
				<key fill="true">
					<default display="⏎" action="return" />
				</key>
				<space width="500" extended="true" />
				<space width="4000"	extended="true" />
				<space width="4000"	extended="true" />
				<space width="500" extended="true" />
			</row>

			<row>
				<space width="500" extended="true" />
				<key fill="true">
					<default display="Shift" action="modifier:shift" />
				</key>
				<key>
					<default display="<" />
					<shifted display=">" />
				</key>
				<key obey-caps='true'>
					<default display="w" />
					<shifted display="W" />
				</key>
				<key obey-caps='true'>
					<default display="x" />
					<shifted display="X" />
				</key>
				<key obey-caps='true'>
					<default display="c" />
					<shifted display="C" />
				</key>
				<key obey-caps='true'>
					<default display="v" />
					<shifted display="V" />
				</key>
				<key obey-caps='true'>
					<default display="b" />
					<shifted display="B" />
				</key>
				<key obey-caps='true'>
					<default display="n" />
					<shifted display="N" />
				</key>
				<key>
					<default display="," />
					<shifted display="?" />
				</key>
				<key>
					<default display="." />
					<shifted display="!" />
				</key>
				<key>
					<default display=";" />
					<shifted display=":" />
				</key>
				<key>
					<default display="/" />
				</key>
				<key fill="true">
					<default display="Shift" action="modifier:shift" />
				</key>
				<space width="500" extended="true" />
				<space width="4000"	extended="true" />
				<space width="4000"	extended="true" />
				<space width="500" extended="true" />
			</row>

			<row>
				<space width="500" extended="true" />
				<key fill="true">
					<default display="Ctrl" action="modifier:ctrl" />
				</key>
				<key>
					<default display="Alt" action="modifier:alt" />
				</key>
				<key width="12000">
					<default display=" " action="space" />
				</key>
				<key>
					<default display="AltGr" action="modifier:mod1" />
				</key>
				<key>
					<default display="Del" action="delete" />
				</key>
				<key>
					<default display="↑" action="up" />
				</key>
				<key>
					<default display="↓" action="down" />
				</key>
				<key>
					<default display="←" action="left" />
				</key>
				<key>
					<default display="→" action="right" />
				</key>
				<space width="500" extended="true" />
				<space width="4000" extended="true" />
				<space width="4000" extended="true" />
				<space width="500" extended="true" />
			</row>
		</layout>
	</keyboard>