J'ai un ordinateur portable à écran tactile et je souhaite masquer le pointeur chaque fois que je touche l'écran. Je connais des solutions comme désencombrer et startx -nocursor
mais je veux que le pointeur se cache / affiche dynamiquement, se cachant si j'utilise l'écran tactile et montrant quand j'utilise une souris matérielle.
J'ai pensé à créer deux pointeurs distincts et à appliquer l'une des deux solutions ci-dessus au pointeur de l'écran tactile, mais aucune de ces solutions ne mentionne comment cibler un seul pointeur, et avoir plusieurs pointeurs rend les choses étranges, et cela ne cacherait pas le matériel Curseur de la souris.
Je pense que je peux très raisonnablement faire cela en faisant quelque chose comme ça , en gardant une trace du mécanisme d'entrée actuel et en l'exécutant xinput -cursor [transparent cursor]
chaque fois que l'écran tactile est utilisé et xinput -cursor [normal cursor]
chaque fois qu'une souris normale est utilisée.
J'ai cependant regardé xinput et il semble que la souris matérielle et l'écran tactile soient asservis au même pointeur, ils enregistrent tous les deux les mêmes événements dans xev, donc je ne sais pas vraiment où obtenir les informations nécessaires pour différencier un toucher d'un clic de souris. c'est possible?
Je suppose que vous utilisez l'écran tactile lorsque vous n'avez pas de souris et que vous en branchez une sur le système lorsque vous souhaitez l'utiliser. Dans ce cas, vous pouvez utiliser des
udev
règles pour gérer votre pointeur en conséquence:Les conditions utilisées pour distinguer une souris sont empruntées à cette réponse .
Gardez à l'esprit que les applications individuelles sont libres de redéfinir le curseur dynamiquement, de sorte que votre curseur peut redevenir visible lorsque vous survolez leurs fenêtres. Vous pouvez
unclutter
plutôt démarrer / arrêter si vous souhaitez que tous les curseurs soient masqués partout:Personnellement, je désactiverais également complètement l'écran tactile lorsque la souris est branchée, de sorte que le toucher accidentellement ne perturbe pas le curseur lorsque vous vous attendez à ce qu'il suive la souris.
la source
udev
comme retiré lorsque vous le désactivez à l'aide du bouton Fn (en supposant que vous en ayez un).Il y a un fork de l'outil unclutter-fix de nowrep disponible ici . Cette version ajoute une
-touch
option pour masquer automatiquement le curseur chaque fois qu'une entrée tactile est détectée. (Le dépôt d'origine unclutter-xfixes est ici )Une chose à savoir est qu'elle inclut toujours le comportement de masquage du curseur après une période de temps spécifiée. Vous pouvez simplement définir l'
--timeout
option sur une valeur très élevée pour contourner ce problème.Cela devrait fonctionner parfaitement pour vous. Dans mon cas, j'avais un écran tactile connecté à l'extérieur et lorsque je reviens au moniteur normal, le curseur sera sur l'écran tactile, donc je dois le déplacer vers le moniteur d'où j'ai touché. La bonne chose est qu'après avoir commencé à déplacer la souris, le curseur apparaîtra donc je sais où il se trouve.
Un bon avantage de cette option est que je peux toujours utiliser ma souris comme d'habitude sur l'écran tactile si je le souhaite mais que je la cache quand je ne le fais pas.
la source