Forum Linux.gui Rendre xorg un peu plus "intelligent"

Posté par  .
Étiquettes : aucune
0
22
sept.
2006
Hello les troupes !
Je poste ce message depuis mon portable, et il y a un petit truc qui me chiffonne. En effet, celui-ci est pourvu d'un touchpad parfaitement reconnu, mais comme sur tous les portables inapproprié pour une utilisation courante.
J'ai donc branché une souris usb dessus, de façon à désactiver ce foutu touchpad. Jusque là, tout va bien.
Ce que je voudrais, maintenant, c'est trouver un hack, grâce à vous qui fasse qu'xorg utilise la souris lorsqu'elle est branchée, le touchpad sinon, sans redémarrer le serveur X. J'entrevois une solution, basée sur udev, mais je suis un bien piètre rédacteur de règles.... Alors je me tourne vers vous pour faire en sorte d'écrire un fichier de règles qui vont bien. Mon idée serait d'écrire une règle qui crée un lien dans /dev nommé souris, et que si /dev/input ne contient qu'un périphérique (le touchpad), ce lien pointe dessus, et qu'il pointe sur le /dev/input/mouseX correspondant à la souris dans le cas contraire.
Ensuite, dans /etc/X11/xorg.conf, j'ajoute la directive qui va bien pour que le serveur X utilise ce lien artificiel.
D'avance merci pour vos suggestions/idées....
  • # gpm ?

    Posté par  . Évalué à 3.

    Du point de vue de X, ton lien mouvant ne changera rien, car une fois que X a ouvert le (vrai) fichier correspondant au périphérique en suivant le lien, il doit normalement y rester "accroché": si tu rediriges le liens vers autre chose, X restera sur le 1er.

    Cependant il est peut-être possible de passer par un intermédiaire, genre gpm (utilisé d'habitude pour partager la souris entre X et la console texte) qui lit les devices souris "réels" et qui les réexporte dans un pseudo-device lu par X. Je ne sais pas si gpm peut prendre les changements de matériel dynamiquement, au pire il suffit de relancer gpm et X ne devrait pas s'en appercevoir.

    Je n'ai jamais moi-même bricolé avec gpm cependant
  • # La solution : AlwaysCore

    Posté par  . Évalué à 7.

    Pour utiliser la souris ou le touchpad sans avoir à bidouiller à chaque branchement de périphérique, on peut faire ainsi (je l'ai fait pour Arch et Slackware, mais çà devrait marcher ailleurs) : http://athanatos.free.fr/Arch/new/xorg.conf

    Les parties intéressantes : une section InputDevice pour le touchpad (My Acer dans le fichier exemple), une autre pour la souris USB (My Mouse). Dans la section ServerLayout, je déclare les deux périphériques : la souris en CorePointer (les évènements sont gérés par X) et le touchpad en AlwaysCore (il ne peut y avoir qu'un seul CorePointer, mais on peut tricher et utiliser autant de souris qu'on veut en les déclarant AlwaysCore).

    Par contre les deux périphériques sont actifs en même temps, gaffe à pas poser la main sur le touchpad pendant que tu tapes :p
  • # Réponse groupée....

    Posté par  . Évalué à 0.

    Déjà, merci à tous les deux pour vos réponses rapides.
    Dans le premier cas, exposé par daggett, je crois bien que l'on ne s'est pas trop compris. En effet, pour X, il n'y a qu'un seul périphérique de pointage. Ce que je pensais, c'était quelque chose de ce genre :
    dans /etc/X11/xorg.conf, section InputDevice propre au mulot trouver ce genre de lignes :

    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/souris"
    Option "Buttons" "5"
    Option "ZAxisMapping" "4 5"
    Option "Protocol" "Auto"
    EndSection

    Attendu que le touchpad et la souris comportent autant de boutons, aucun soucis pour le branchement à chaud.
    Ce qui me manque, ce sont les règles udev pour créer le lien /dev/souris comme je l'exposais dans mon post initial.

    Concernant la solution proposée par Gabriel Linder, elle me gêne énormément, d'autant plus que je ne veux surtout pas avoir les deux qui fonctionnent en même temps. La solution proposée en plus est "moyenne", car il est possible de préciser dans la section ci-dessus : Option "Device" "/dev/input/mice" qui fait exactement la même chose que ce qu'il décrit.
    Là encore, ce n'est pas satisfaisant. Le touchpad, c'est bien pour une utilisation "nomade", mais pas quand le portable est connecté au réplicateur de ports, par exemple.

    Non, il n'y a pas à dire, ce qui me manque, c'est la façon de rédiger une ou des règles pour udev qui fonctionne comme je le souhaite. Si quelqu'un a une idée sur la question....
    A vot'bon coeur, comme on dit !
    • [^] # Re: Réponse groupée....

      Posté par  . Évalué à 2.

      Si tu veux absolument désactiver le touchpad (et s'il s'agit d'un synaptics), tu peux le faire avec l'option TouchpadOff (voir le man[1] pour changer dynamiquement ce paramètre, option SHMConfig). Il doit y avoir moyen de configurer udev pour exécuter synclient avec les bons paramètres selon que branches ou débranches la souris, c'est une piste à explorer.

      [1] http://www.die.net/doc/linux/man/man5/synaptics.5.html

Suivre le flux des commentaires

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