Date Tags debian

Comme expliqué dans un précédent billet, je « m’amuse » avec xorg 7.4 qui est disponible dans debian/experimental. La dernière version de xserver-xorg (1.5.3) a même été uploadée depuis quelques jours (jusqu’ici tout va bien). Une nouvelle version (2.0.99.3) du pilote evdev a également été uploadée, et chez moi a mené à une situation plutôt cocasse, à savoir que la combinaison de touches ctrl+c tuait mon serveur X (oui, moi aussi j’en rigole, mais essayez de copier/coller un texte depuis une page web ou encore d’interrompre une commande shell…). De la même façon, tout ce que je tapais dans X se retrouvait sur le VT7, ce qui est assez perturbant - à moins de considérer que 7=T, ce qui donne VTT, qu’on peut extrapoler à « aussi absurde qu’un poisson sans VTT », ce qui ne nous avance guère, l’expression consacrée étant « aussi absurde qu’un poisson sans bicyclette ».

Donc, disais-je, avant d’être emporté par moi-même dans cette digression brillant par sa logique, j’ai finalement trouvé la solution après une journée à tâtonner dans toutes les directions, qui consiste à restaurer le comportement de la version précédente, à savoir faire en sorte que le pilote garde l’exclusivité sur le clavier (option GrabDevice à true ). Le fichier FDI de la disposition clavier (/etc/hal/fdi/policy/10-keymap.fdi) pour hal devient ainsi :

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keymap">
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
    </match>

    <match key="info.capabilities" contains="input.keys">
      <merge key="input.x11_options.XkbRules" type="string">base</merge>

      <!-- If we're using Linux, we use evdev by default (falling back to
           keyboard otherwise). -->
      <merge key="input.x11_options.XkbModel" type="string">keyboard</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux">
        <merge key="input.x11_options.XkbModel" type="string">evdev</merge>
      </match>

      <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
      <merge key="input.x11_options.XkbVariant" type="string">mac</merge>
      <merge key="input.x11_options.XkbOptions" type="string">lv3:lwin_switch,compose:rwin</merge>
      <merge key="input.x11_options.GrabDevice" type="string">true</merge>
    </match>
  </device>
</deviceinfo>

Le seul désavantage est que certaines applications comme pommed (qui gère les touches multimédia pour le macbook) ne peuvent plus accéder au périphérique sous X car il est locké par le pilote, mais ça reste relativement supportable par rapport à la situation précédente.

Et sinon, peut-être qu’un jour toutes ces histoires de branchement/détection à chaud dans X avec hal seront convenablement documentées…

PS : oui, j’aime bien le XML