web-dev-qa-db-fra.com

Comment émuler un clic du bouton droit de la souris sur l'écran tactile?

Mon nouvel ordinateur portable à écran tactile ne possède pas le bouton de menu (c’est-à-dire que celui-ci se comporte comme un clic droit), celui qui se trouve généralement à côté du ctrl droit.

étant donné que vous ne pouvez pas cliquer au toucher, j'essaie de créer un raccourci clavier personnalisé pour Alt GR pour cette fonction (sous Système> Clavier> Raccourcis> Raccourcis personnalisés).

Lors de l'utilisation de la commande xev avec un clavier intégré (doté du bouton de menu), j'ai découvert que les informations du bouton sont les suivantes:

KeyRelease event, serial 42, synthetic NO, window 0x4800001,
    root 0xab, subw 0x0, time 2544690, (1236,607), root:(1302,1050),
    state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Cependant, je n'ai aucune idée de ce qu'il faut faire avec cette information ...

au fait, j'utilise une Ubuntu 13.04.

Toute aide serait appréciée...

9
Ismail Moghul

Vous devez activer le clic secondaire (comme l'a commenté AliNa) avec gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true" ou avec dconf editor.

Ensuite, il est possible qu'Ubuntu gère l'écran tactile partiellement comme un pavé tactile, où une touche tactile ne déclenche pas l'appui de la souris. Au lieu de cela, vous devez appuyer brièvement sur + touchez-et-maintenez.

12
Freddi Schiller

Continuez simplement à toucher l'écran pendant 2 ou 3 secondes et ce qui s'appelle le "menu de droite" devrait apparaître. C’est le moyen normal d’émuler un clic droit sur n’importe quel écran tactile.

6
Radu Rădeanu

Si vous possédez un écran tactile Wacom (utilisant le pilote xf86-input-wacom) et qu’il est compatible avec au moins deux doigts tactiles, les opérations suivantes produiront un clic droit:

  1. Tapez et maintenez avec le premier doigt.
  2. Maintenant, tapez avec le deuxième doigt.

Si cela ne fonctionne pas encore, recherchez le nom du produit de votre écran tactile à partir de xinput --list, puis activez cette fonctionnalité avec:

xsetwacom --set "[your touchscreen product id]" Gesture on

Pour rendre ce changement permanent, voir mon autre réponse pour la technique.

Contrairement aux clics longs effectués avec le bouton droit de la souris sous Gnome/Ubuntu Shell, cela fonctionne dans tous les environnements de bureau car il s'agit d'une fonctionnalité (héritée) au niveau du pilote. Sachez simplement que cela peut causer des problèmes de clic gauche sur l'écran tactile dans certains programmes, c'est pourquoi j'ai dû le désactiver sur mon système.

1
tanius

Parmi mes réponses à cette question, c'est mon préféré.

Si votre écran tactile prend en charge la saisie tactile multipoint au moins à deux doigts, vous pouvez installer touchegg et le configurer pour interpréter (par exemple) un tapotement à deux doigts comme un clic droit. J'ai essayé cela sous Lubuntu 18.10 et cela fonctionne.

1. Installation

touchegg est disponible dans les référentiels Ubuntu 18.10, vous pouvez donc l'installer simplement comme ceci:

Sudo apt install touchegg

Pour le démarrer, exécutez touchegg. Lors de son exécution dans un terminal, vous pouvez vérifier à partir de sa sortie s'il détecte correctement vos gestes multitouch.

Pour que touchegg démarre automatiquement pour chaque session LXQt, ajoutez-le simplement au démarrage automatique (menu LXQt → Préférences → Paramètres LXQt → Paramètres de session → Démarrage automatique).

2. Façons de configurer touchegg

Vous pouvez configurer touchegg de deux manières différentes:

  • Configuration avec un fichier de configuration. Editez le fichier ~/.config/touchegg/touchegg.conf. Pour que les modifications prennent effet, exécutez la procédure suivante dans un terminal ou via le programme. Alt + F2 lancer le dialogue:

    killall touchegg; touchegg
    
  • Configuration avec une interface graphique. touchegg possède une interface graphique de configuration de Nice appelée touchegg-gui, qui est visible ici . Cependant, il ne fait pas partie du paquet touchegg Ubuntu. Vous pouvez également installer l'interface graphique touchegg-gcecomme décrit ici . touchegg-gce fonctionne, mais vous devez redémarrer manuellement touchegg après avoir enregistré les modifications dans son fichier de configuration, à nouveau en exécutant:

    killall touchegg; touchegg
    

3. Configuration pour émuler un clic droit

Pour configurer un clic droit avec deux doigts, vous pouvez utiliser ce fichier de configuration pour ~/.config/touchegg/touchegg.conf:

<touchégg>
        <settings>
                <property name="composed_gestures_time">0</property>
        </settings>

        <application name="All">
                <gesture type="TAP" fingers="2" direction="">
                        <action type="MOUSE_CLICK">BUTTON=3</action>
                </gesture>
        </application>
</touchégg>

Commentaires sur la configuration touchegg:

  • Un clic droit, comme indiqué ci-dessus, est déjà contenu dans le fichier de configuration par défaut fourni avec touchegg. (Ubuntu 18.10 ici.)

  • Le programme attendra composed_gestures_time (donné en millisecondes) pour que vous puissiez compléter vos actions pour les gestes composés de plusieurs parties (comme des touches tactiles), et les interpréter ensuite seulement. Ainsi, lorsque vous utilisez touchegg uniquement pour les gestes à une seule partie tels que le clic droit avec le doigt droit, vous pouvez définir ceci sur 0 pour éviter tout retard perceptible dans les actions. C'est également la valeur par défaut dans le fichier de configuration créé par touchegg.

  • Au moins avec mon écran tactile, la saisie à deux doigts n'est pas reconnue lorsque vous touchez l'écran avec les deux doigts en même temps. Mais quand il y a même un très petit intervalle de temps (pour que deux taps puissent être entendus, probablement ≥ 10 ms), cela fonctionne de manière fiable. Donc, je déplace juste mon index et le majeur avec un petit écart vertical vers l'écran, et cela fonctionne de manière fiable.

  • Le clic droit sera déclenché à l'emplacement de ce doigt (sur les deux de ce geste) qui touche l'écran en premier.

  • touchegg permet à tous les événements non configurés de s'afficher jusqu'à l'application sous le curseur. C’est bien parce que le zoom-pincement natif, etc., implémenté dans Chromium, Chrome, Evince, par exemple, est beaucoup plus fluide que via touchegg.

  • touchegg peut être utilisé avec le logiciel de reconnaissance gestuelle à touche unique (hautement recommandé!) easystroke sans interférence. Bien entendu, ils ne doivent pas être configurés pour être déclenchés par les mêmes événements.

4. Dépannage

  • touchegg peut cesser de fonctionner après un cycle de suspension et de reprise. Je dois encore trouver un moyen pour qu'il redémarre automatiquement.

  • Au moins pour moi et les autres , touchegg interprétera uniquement les événements tactiles sur l'écran tactile, pas sur le pavé tactile. Dans ce cas, c'est souhaité. C'est peut-être parce que mon pavé tactile utilise un pilote qui n'expose pas les événements tactiles multiples au serveur X (synaptics plutôt que libinput). Vous pouvez vérifier les appareils auxquels touchegg se lie en le démarrant avec GEIS_DEBUG=3 touchegg.

  • Si touchegg provoque une sorte de "demi-clic bloqué" pour tous les programmes, taps déplacera le pointeur de la souris mais ne déclenchera plus les clics gauche: il s'agit et non de son comportement normal. Sous Ubuntu 18.10 avec LXQt, je ne l'avais pas au début, mais je l'avais ensuite après plusieurs redémarrages de touchegg et même des redémarrages de tout l'ordinateur. Il a disparu après avoir démarré le bureau Ubuntu par défaut puis être retourné à LXQt.

    Un correctif dans le fichier de configuration touchegg en configurant un geste supplémentaire pour la frappe à un doigt résoudra le "demi-clic bloqué", mais il reste un autre problème de comportement de touchegg avec ce bogue, il ne s'agit donc pas d'un correctif réel. Cette mauvaise conduite implique que (1) touchegg consommera également tous les événements pour lesquels il n’est pas configuré, du moins ceux d’un doigt, et (2) certains programmes basés sur Java (par exemple, freemind) en souffriront. à partir d'un problème inverse avec "demi-clic bloqué", où la position du curseur sera bloquée mais où le clic gauche sera enregistré. Ce problème est temporairement résolu en effectuant une action à deux doigts dans le programme basé sur Java, que touchegg doit reconnaître.

0
tanius

Pour ceux qui ont le  Touche du men sur leur clavier, la remarque relative à l’utilisation de cette option pour créer un clic droit est en fait une excellente idée. Comme ce n’est pas évident, voici comment cela fonctionne:

  1. Tapez et maintenez l'écran avec un doigt. Ne relâchez pas le doigt, cela provoquerait un clic gauche, ce qui pourrait avoir des effets indésirables sur ton application. Tapez et maintenez, c'est comme si vous appuyiez sur le bouton gauche de la souris sans le relâcher. Généralement, aucune action dans une application n'en résulte. Cependant, la position du pointeur de la souris est déjà modifiée et vous souhaitez cliquer avec le bouton droit de la souris. C'est pourquoi nous effectuons cette étape.

  2. Appuyez et relâchez le  Touche Menu. Un clic droit est déjà déclenché sur l'événement correspondant à une pression sur une touche.

Évidemment, cette technique nécessite deux mains et est totalement impossible sur les ordinateurs portables convertibles en mode tablette. Donc, son utilisation pratique est limitée.

0
tanius

Vous pouvez utiliser easystroke pour créer des clics droits avec un modificateur et une frappe, tels que Ctrl + Alt + tapez. Avec une configuration supplémentaire, vous pouvez y accéder seul avec un seul écran tactile, voir ci-dessous.

C'est assez agréable, car "modificateur plus tap", car un clic droit ne peut pas être configuré avec l'un des touchegg (ne reconnaît pas les modificateurs), mouseemu (ne reconnaît pas les taps car ils manquent de scancodes) ou xsetwacom "…" set Button 1 … (ne reconnaît pas les taps comme doigt) l’entrée n’est pas un événement de bouton dans le pilote).

1. Installation

Le programme easystroke n’est maintenu que de façon minime à l’heure actuelle, mais dans le notes de publication , ils sont liés à un paquet récent Ubuntu, construit sur Ubuntu 18.04. Cela a bien fonctionné pour moi (Ubuntu 18.10 ici). Vous pouvez l'installer comme suit:

wget http://openartisthq.org/easystroke/easystroke_0.6.0-0ubuntu8_AMD64.deb
Sudo apt install ./easystroke_0.6.0-0ubuntu8_AMD64.deb

2. configuration

  1. Commencez le programme avec easystroke.

  2. Sous le deuxième onglet "Préférences", cliquez sur "Bouton de geste" et Ctrl + Alt + appuyez sur le champ gris. Ctrl + Alt semble être le meilleur choix de modificateur, au moins sous LXQt, car:

    • Tous les deux Shift + cliquez et Ctrl + clic sont déjà utilisés pour la multi-sélection et deviendraient indisponibles si assignés à easystroke.
    • AltSuper et toute combinaison impliquant Super ne sera pas vu par easystroke. Il s’agit probablement d’un problème de coniguration LXQt ou Openbox, mais je n’ai pas pu le résoudre pour l’instant.
  3. Sous le premier onglet "Actions", cliquez sur "Ajouter une action".

  4. Configurez votre action avec "Type: Commande" et "Détails: xdotool keyup ctrl alt; xdotool click 3". Adaptez-vous en fonction de vos modificateurs choisis.

    En fonction des modificateurs, il est important de nettoyer les modificateurs en premier pour éviter les effets secondaires. Par exemple Shift + clic droit dans Chrome mènerait à la sélection de texte. Il est également nécessaire d'effacer explicitement les modificateurs pour empêcher les modificateurs bloqués de déclencher ces touches avec un logiciel (voir la section 3 ci-dessous). Ne pas effacer les modificateurs lui-même avant d'exécuter la commande pourrait être considéré comme un bogue dans easystroke.

  5. Cliquez sur "Record Stroke" et enregistrez un seul tap.

  6. Vous pouvez désactiver les popups (ici plutôt inutiles) sous "Préférences → Apparence → Afficher les popups".

  7. Vous pouvez limiter cette reconnaissance de geste à votre écran tactile et éventuellement au périphérique de saisie au stylet sous "Avancé → Périphériques".

À présent, Ctrl + Alt + tapez va créer un clic droit.

Notez que easystroke offre une excellente reconnaissance des gestes pour les gestes à touche unique ("dessiner des formes sur l'écran") que vous pouvez utiliser pour automatiser de nombreuses tâches tout en utilisant l'écran tactile. C’est là son objectif principal, alors que l’émulation par clic droit n’est qu’un effet secondaire.

3. Amélioration: clic droit uniquement sur les touches

Maintenant, améliorons cette configuration pour que vous puissiez déclencher des clics-droit avec une seule main et un écran tactile en (1) tapotant sur un bouton spécial à l'écran qui signifie "le prochain tap est un clic droit" et (2) puis tapotant sur l'écran juste normalement.

Voici une recette pour Lubuntu (LXQt) et en utilisant le Ctrl + Alt modificateur choisi ci-dessus, mais le principe est le même dans tous les environnements de bureau et avec tous les modificateurs: une entrée de lancement rapide personnalisée dans le panneau.

  1. Créez une icône personnalisée pour votre entrée quicklaunch et enregistrez-la sous le nom ~/.icons/default/rightclick.png.

  2. Créez un fichier personnalisé .desktop et enregistrez-le sous le nom .local/share/applications/rightclick.desktop, avec le contenu suivant. Notez que vous devez fournir username pour le chemin absolu.

    [Desktop Entry]
    Name=Rightclick
    Comment=Next tap is a rightclick via Ctrl + Alt + easystroke gesture.
    Icon=/home/matthias/.icons/default/rightclick.png
    Exec=xdotool keydown ctrl alt
    Type=Application
    Categories=System;Utility;
    StartupWMClass=localdomain.rightclick
    
  3. Ajoutez un autre widget quicklaunch à votre panneau LXQt. Bien qu'en principe, vous puissiez également modifier votre version existante, j’ai trouvé qu’une option placée dans le coin inférieur droit de l’écran est la plus naturelle pour une opération avec droitier. De plus, les erreurs d’accrochage accidentelles n’indiquent que la date (si c’est à côté gauche, comme dans mon cas) au lieu de démarrer une application volumineuse.

  4. Ouvrez ~/.config/lxqt/panel.conf et ajustez la nouvelle section [quicklaunch2] pour faire référence à votre fichier personnalisé .desktop. Encore une fois, vous devez fournir username. Exemple à quoi cela peut ressembler:

    [quicklaunch2]
    alignment=Left
    apps\1\desktop=/home/username/.local/share/applications/rightclick.desktop
    apps\size=1
    type=quicklaunch
    
  5. Redémarrez le panneau LXQt pour appliquer les modifications. Pour ça:

    1. Sélectionnez "Menu LXQt → Préférences → Paramètres LXQt → Paramètres de session".
    2. Sélectionnez "Paramètres de base → Modules LXQt → Panneau".
    3. Cliquez sur "Stop".
    4. Cliquez sur "Démarrer".

    (Vous pouvez également exécuter killall lxqt-panel && lxqt-panel dans le répertoire Alt + F2 lancer la boîte de dialogue, mais cela va interférer avec l’état des panneaux reconnu dans la boîte de dialogue mentionnée ci-dessus, et si vous mélangez les deux techniques, deux panneaux s’exécutant superposés, l’une des icônes manquantes. Alors mieux vaut ne pas. C'est encore un buggy.)

De même, si vous disposez de boutons matériels spéciaux sur le côté de l'écran tactile, vous pouvez également affecter la commande xdotool keydown ctrl alt à l'un d'entre eux.

4. Autres améliorations et dépannage

  • Comme effet secondaire sympa, la technique ci-dessus pour les clics droits uniquement tactiles permet également d’accéder d’une seule main à tous les autres gestes que vous avez configurés dans easystroke. C'est une fonctionnalité assez puissante pour l'automatisation de l'utilisation de l'écran tactile.

  • Lorsque vous configurez d’autres mouvements dans easystroke, tenez compte du bogue suivant: easystroke n’efface pas les modificateurs que vous avez choisis avant d’effectuer l’action configurée. Les types d'action "Clé" et "Texte" donnent tous lieu à des combinaisons de touches avec Ctrl + Alt dans le cas ci-dessus, ce qui les rend inutilisables. Pour résoudre ce problème, choisissez le type d'action "Commande" et effacez vous-même les modificateurs de la même manière que ci-dessus. Donc pour déclencher Ctrl + V, la commande serait:

    xdotool keyup ctrl alt; xdotool key "ctrl+v"
    

    (L'option xdotool--clearmodifiers n'aide pas ici, car elle désactive uniquement les modificateurs lors de la combinaison de touches à exécuter et les réapplique par la suite. Ce qui, dans ce cas, ferait que le prochain tapotera un clic droit selon la technique ci-dessus, mais nous le ferions. veut pas que dans ce cas.)

  • Si vous avez déjà bloqué des modificateurs pendant le test, appuyez sur les touches de modification du clavier physique et relâchez-les pour corriger le problème.

  • Parfois, lors des tests, le LXQt, les événements liés au clavier et à la souris étaient très perturbés. Dans un tel cas, seule la déconnexion de l'environnement graphique et la nouvelle connexion ont aidé.

  • Le moyen le plus propre d'implémenter une opération tactile à une seule main dans easystroke, y compris dans le cas de clics droit requis, consiste à cliquer sur l'icône du panneau easystroke pour le placer dans le même état interne que celui de notre icône de panneau personnalisé configuré. ci-dessus, mais sans changer en fait l'état du modificateur de clavier car cela peut entraîner le blocage de modificateurs, etc. Pour afficher la fenêtre easystroke, il faudrait alors utiliser le menu contextuel de son icône de panneau. Évidemment, cela nécessite quelques modifications dans le code easystroke.

0
tanius