Une doc intelligible et détaillée sur XKb ? Mais oui... et en français...

Posté par  . Édité par Benoît Sibaud. Modéré par Sylvain Rampacek.
Étiquettes :
0
6
août
2007
Doc

L'eXtension de X Window pour le clavier - XKb - est notoirement mal documentée, même en anglais, on appréciera donc ce tutoriel accessible, à la fois systématique et détaillé pas à pas.

Un tutoriel qui vous permettra d'utiliser XKb pour personnaliser votre clavier, ajouter des fonctions aux touches, changer leur disposition, créer plusieurs claviers personnalisés, activer les identificateurs lumineux etc. et tout ceci en vous plaçant au niveau utilisateur et donc sans mettre en péril les paramétrages par défaut de votre système, qui pourront toujours être réactivés.

Bien que conçu initialement pour Mandriva Linux, cette doc devrait être très largement utilisable pour n'importe quelle distribution.

NdM: le lien « Guide d'utilisation de XKB » qui pointait vers http://wiki.mandriva.com/fr/Personnaliser_le_clavier#R.C3.A9affecter_les_touches_avec_XKb n'est plus fonctionnel.

Aller plus loin

  • # Quelle horreur !

    Posté par  (site web personnel) . Évalué à 3.

    Bon, ayant un clavier multimédia et ne sachant pour quelle raison depuis les nouvelles versions d'XFree les touches multimédia n'étaient plus reconnues par le noyau, j'ai dû me jetter dans les méandres du fonctionnement du clavier sous linux.

    Voici ce que cela a donné : http://infernal-quack.net/ordi_clavier_logitech
    C'est approximatif car je n'étais pas tombé sur l'article sur XKb et j'avoue ne pas avoir tout compris mais si ça peut aider. surtout que l'article sur XKb ne semble pas parler du moyen de faire reconnaitre au noyau les touches manquantes.

    Un truc qui serait excellent cela serait de pouvoir avoir des configurations xkb sous forme de packages car il manque beaucoup de configurations pour les claviers multimédia où elle sont souvent incomplètes. "urpmi conf-keyboard-logitech_navigator" ça roxerait des mamans ours :)

    L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire

    • [^] # Re: Quelle horreur !

      Posté par  . Évalué à 10.

      Bonjour quack d'enfer et bonjour linuxfr,

      Je ne sais pas si c'est précisément ce que tu recherches, mais tu peux essayer keytouch http://keytouch.sourceforge.net/

      c'est un (tout petit) peu plus lourd qu'une configuration aux petits oignons, mais keytouch a le mérite de pouvoir configurer un clavier avec de nombreuses touches supplémentaires en trois coups de cuillères à pots.

      Ce logiciel s'occupe de tous les aspects, de la récupération des évènements clavier par le noyau jusqu'au choix des commandes associées aux touches. Enfin, keytouch fonctionne aussi pour les claviers d'ordinateurs portables.

      En espérant avoir aidé, bonne semaine
      • [^] # Re: Quelle horreur !

        Posté par  (site web personnel) . Évalué à 1.

        Wow, il a l'air merveilleux, ce Keytouch !
        Jusqu'ici j'utilisais Xbindkeys ( http://hocwp.free.fr/xbindkeys/xbindkeys.html ), que j'aime bien (Mandriva n'a toujours pas la finesse de faire marcher toute seule les touches de vol +/-/on|off à l'issue de l'installation, alors qu'Ubuntu le fait très bien, avec une jauge et tout).
        La prochaine fois, j'essaye Keytouch.
        • [^] # Re: Quelle horreur !

          Posté par  . Évalué à 4.

          Est-tu sûr que tu ne compares pas plutôt Gnome à KDE? Car Mandriva sous Gnome m'a reconnu directement les touches de volume, comme Ubuntu. Par contre Kubuntu ne me les a pas reconnues ;-)

          ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

          • [^] # Re: Quelle horreur !

            Posté par  (site web personnel) . Évalué à 1.

            HA BON ??? Ben je sais pas moi... j'ai essayé toutes les Mandriva, sous Gnome, avec 4 ou 5 claviers différents, des récents et des pas récents (des Logitech, Spyker, Microsoft, Labtec, Dell : tous envoient de toute façon le même keycode pour ces touches de volume, en USB comme en PS2)... Aucune n'a jamais fait ça. Et encore moins avec une jolie jauge à l'écran. Quand ça marche pas sur autant d'échantillons, et avec autant de constance, je crois que je peux affirmer que ça marche pas.
            Peut-être alors que ton clavier est dans la liste des claviers des Préférences|Clavier. Mais perso, j'ai l'impression que cette liste date de Mathusalem, aucun des miens n'y ait.
            Pareil dans les Préférences|Raccourcis clavier, il semblerait que les touches multimédia soient prises en compte, mais ça n'a jamais marché comme ça devrait.
          • [^] # Re: Quelle horreur !

            Posté par  (site web personnel) . Évalué à 2.

            Moi, c'était des codes bizarres.

            Je suis allez dans l'outil de configuration de Gnome pour configurer les touches multimédia ("appuyez sur la touche correspondante"), et depuis ça marche nickel, je pilote les lecteurs audio/vidéo avec, j'ai même une jauge semi-transparente quand j'active le bureau 3D :)
          • [^] # Re: Quelle horreur !

            Posté par  . Évalué à 2.

            Ca dépend peut être des distributions, car sous Gentoo avec KDE, les touches volumes de mon portable dell ont été reconnues sans aucune intervention de ma part.
            En même temps je ne peux pas dire que Gnome n'en aurait pas fait autant. Je n'ai pas voulu le compiler par manque de temps....
    • [^] # Re: Quelle horreur !

      Posté par  . Évalué à 10.

      Remarquez que dans certains cas (surtout pour les portables Toshiba, Thinkpads, Sony, ...) les touches spéciales sont envoyées au système sous forme d'évènements ACPI (et non sous la forme d'input events).

      Richard Hughes, un des mainteneurs de HAL vient de lancer un appel à contribution auprès les utilisateurs disposant de claviers problématiques de ce type : il estime que HAL permet de gérer ces cas particuliers de façon très propre, et avec une bonne granularité, depuis qu'il a mis en place un framework adapté, mais a besoin d'informations concernant les divers claviers. SVP, aidez-le si vous pouvez :

      * Mapping keys : unfucking one keyboard at a time, par Richard Hughes :
      http://hughsient.livejournal.com/29730.html

      * Et le superbe HAL Quirk Site :
      http://people.freedesktop.org/~hughsient/quirk/

      Vous pouvez aussi faire un tour sur la page des quirks si vous avez des problèmes avec l'hibernation, la mise en veille, ou avec la gestion du rétro-éclairage.
      • [^] # Re: Quelle horreur !

        Posté par  (site web personnel) . Évalué à 4.

        Saut que ça marche que pour les portables (ex-)ibm et sony.

        En effet, ils ont un module noyau qui n'envoie ces évènements pas que dans /proc/acpi/events mais aussi dans le device clavier (ou un truc du genre /dev/input/event0).

        Hors il manque ceci pour asus, a savoir qu'il n'envoient que le code dans les évènements acpi...

        Actuellement ubuntu utilise un hack sale qui fait générer a acpid les évènements clavier, pour les re-récupérer par un bind de ces code de touches.

        Bref, pas de solution propre hal tant que tous les modules noyaux pour portable n'enverront pas en supplément dans /dev/input/event0 les keycodes en plus des évènements acpi...
  • # Super

    Posté par  . Évalué à 5.

    Ils vont être jaloux ceux qui ne lisent pas le Français, car il est vrai que même la documentation Anglais n'est pas terrible..

    C'est quand même dommage que ce soit le bazar un point aussi important que la gestion du clavier..
  • # bravo pour la doc

    Posté par  (site web personnel) . Évalué à 8.

    Impressionnante, ta doc... Utile, longue et détaillée... Chapeau. Sérieux, t'as passé combien de temps à l'écrire ?
    • [^] # Re: bravo pour la doc

      Posté par  . Évalué à 2.

      en effet, bravo pour la doc,

      comme j'ai un clavier multimedia avec des touches qui ne sont pas reconnues par XEV,
      je ferais un essai avec ta doc.

      merci à toi pour ce travail.
  • # Plusieurs claviers

    Posté par  . Évalué à 5.

    Bon, ce serait plutôt une question de forum, mais vu que c'est le sujet ici :
    Comment faire pour paramétrer différemment ses différents claviers physiques quand on en a plusieurs sur une machine ? Est-ce que xkb permet de configurer un périphérique en particulier ? Faut-il utiliser un autre programme ?

    En particulier, dans mon cas, ce serait pour activer le verrouillage numérique sur mon clavier USB sans l'activer sur le clavier intégré de mon portable.
    (Ou alors l'activer sur un pavé numérique indépendant sur USB sans l'activer sur le clavier intégré.)
    Je sais que certains BIOS permettent de modifier l'effet du verrouillage numérique sur le clavier intégré, mais je trouve ça un peu brutal car non modifiable à chaud (et en tout cas pas toujours proposé).

    Un autre cas d'utilisation serait tout simplement pour pouvoir programmer des tonnes de fonctions indépendamment (un clavier pourrait être dédié à produire des événements spécifiques à une application particulière, et un autre agir "normalement").
    • [^] # Re: Plusieurs claviers

      Posté par  . Évalué à 2.

      Je ne crois pas que X puisse gérer plusieurs configurations de clavier selon celui qu'on branche à un moment donné (surtout si on fait ça à chaud), mais une méthode simple est le chargement d'une Xmodmap pour une utilisation spécifique.

      Ainsi, quand on veut brancher tel clavier (ou utiliser telle application), on lance xmodmap fichierfichier est un fichier xmodmap maison... C'est actif immédiatement.

      Exemple concret : pour jouer à Freespace2, comme les caractères spéciaux (les accents, les touches mortes...) ne sont pas gérés, et que ça devient vite pénible de ne pas pouvoir utiliser les touches &é"'( sans appuyer sur shift pour avoir 12345, j'ai un script qui charge une xmodmap spécifique (et remet l'ancienne à la fin du programme (un petit trap pour gérer les crash et autres permet d'éviter les gags de non-restauration pour cause d'interruption brutale du programme sur une erreur de segmentation qui interromprait le script avant qu'on ait pu restaurer la configuration d'origine).

      cf ici (en anglais, désolé, la flemme de traduire) :
      http://www.hard-light.net/wiki/index.php/Fs2_open_on_Linux#I(...)
      • [^] # Re: Plusieurs claviers

        Posté par  . Évalué à 2.

        (et là, il lut la doc dont il est question ici, et se rendit compte que toute une section était dédiée à xmodmap... Il jura, mais un peu tard, qu'on ne l'y reprendrait plus à répondre aux commentaires avant d'avoir lu ;) )

        Bon, on va dire que pour le script d'exemple ce n'est pas un post complètement inutile, et puis c'est le mois d'août tout le monde s'en fout ;)
  • # Correction doc

    Posté par  . Évalué à 4.

    Quand tu indiques de commenter les deux lignes dans /usr/bin/test-windows-key, il faut aussi commenter le 'if' ... 'fi' ou bien
    mettre une autre commande (':' par exemple).
    En effet, bash n'accepte pas un then (ou un else) vide :

    vdanjean@cayuga:~$ if test -x t ; then fi
    bash: syntax error near unexpected token `fi'
    vdanjean@cayuga:~$ if test -x t ; then ; fi
    bash: syntax error near unexpected token `;'
    • [^] # Re: Correction doc

      Posté par  . Évalué à 1.

      Il me semblait que le message d'erreur se 'perdait' purement et simplement sans que cela ait de conséquence, mais tu as raison, c'est plus propre au fond de commenter toute la structure en 'if'. Je corrige. Merci.
      Ptyxs
  • # Que faire pour les keycode > 255 ?

    Posté par  . Évalué à 1.

    voila j'ai une télécommande cinergy T2 qui passe par /dev/input/event pour retourner le code des touches. Lorsque j'utilise evtest sur /dev/input/event j'ai bien les bons évènements mais lorsque j'utilise xev et bien rien du tout.

    Comment faire pour que Xev puisse voir ces touches > 255 ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.