web-dev-qa-db-fra.com

Où dois-je coller une commande "xinput" pour qu'elle soit exécutée au démarrage de GNOME?

Sur mon Thinkpad, j'ai besoin d'exécuter quelque chose comme ceci dans le terminal:

xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1

de sorte que les 2 boutons de mon pavé tactile émulent le clic de la souris du milieu. Maintenant, j'ai besoin que cette ligne soit exécutée à chaque fois que je lance GNOMe ou X, ou autre chose, pour que cela "fonctionne".

J'ai essayé ~/.xsession ou ~/.bashrc mais en vain. Dois-je le mettre dans les scripts de démarrage de GNOME ou dans/etc/X quelque part?

J'utilise Ubuntu 11.10.

10
michuk

J'utilise Enlightenment DM, mais cela concerne d'autres DM/ordinateurs de bureau. Je commence ma session en utilisant xsession, donc j’ai initialement placé des commandes xinput dans ~/.xsession qui n’ont pas changé tous les paramètres que je voulais changer. Seulement certains d'entre eux. Je m'attendais à tout ou pas du tout, alors j'ai ajouté une boucle d'interaction 10 à ma .xsession avec des intervalles d'une seconde, en exécutant des commandes xinput à chaque fois et en vérifiant si les paramètres étaient appliqués. À ma grande surprise, tous les paramètres ont été appliqués après la première itération.

Cela signifie que c'est votre DM qui redéfinit vos paramètres xinput et que la commande qui lance votre DM (E17 dans mon cas) est la dernière de votre fichier .xsession, ce fichier n'est pas un endroit pour cela.

J'ai ajouté les lignes suivantes dans mon ~/.profile, ce qui a résolu le problème:

# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then

  # set your devices names here
  pointer1="IBM TrackPoint"
  pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
  pointer3="Logitech USB Trackball"

  id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
  id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print \$2}" | cut -f1)
  id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print \$2}" | cut -f1)

  if [[ -n "${id1}" ]]; then
    xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id1}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id1}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id1}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id2}" ]]; then
    xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id2}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id2}"  "Evdev Wheel Emulation Button" 2
    xinput set-prop "${id2}"  "Evdev Middle Button Emulation" 0
  fi

  if [[ -n "${id3}" ]]; then
    xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Axes" 6 7 4 5
    xinput set-prop "${id3}"  "Evdev Wheel Emulation" 1
    xinput set-prop "${id3}"  "Evdev Wheel Emulation Button" 8
    xinput set-prop "${id3}"  "Evdev Middle Button Emulation" 1
  fi
fi

PS set-int-prop a été déconseillé au profit de set-prop (man xinput).

Espérons que cela aide quelqu'un.

7
Marcin Kaminski

Ajoutez la commande directement aux applications de démarrage. Dans le champ de commande.

ou

créez un script simple et ajoutez-le aux applications de démarrage.

4
NickTux

Créez un fichier dans /etc/X11/Xsession.d/ pour cela.

3
Florian Diesch

Voici comment je l'ai fait dans buntu 14.04 depuis le terminal:

1) Vérifiez le nom de votre appareil:

xinput list

2) Voir les options disponibles pour votre appareil:

xinput list-props "Your Device Name"

3) Modifiez les paramètres (pour rendre les paramètres cohérents après le redémarrage/l’arrêt simplement ajoutez cette commande aux applications de démarrage):

xinput set-prop "Your Device Name" "Option Name" "Value"

Voici un exemple de commande que j'ai utilisé pour activer les drags verrouillés dans mon pavé tactile:

xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Locked Drags" 1

Pour activer/modifier une autre option, cherchez-la simplement dans les options disponibles de votre appareil et jouez avec elles jusqu'à obtenir le résultat souhaité, puis ajoutez la commande à Applications de démarrage et vous avez terminé! J'espère que ça aide! :)

1
Marco