Utiliser le clic droit de la souris comme touche ctrl ?

Le
Jean-Christophe G.
Bonjour,

J'essaye d'utiliser un clic de souris comme touche ctrl.
J'ai écris quelque chose qui fonctionne à peu près:

(progn
(defun ctrl ()
(interactive)
(setq extra-keyboard-modifiers (logxor extra-keyboard-modifiers 4)))

(global-set-key [down-mouse-3] 'ctrl)
(global-set-key [mouse-3] 'ctrl)

)

Ca marche bien quand on utilise 2 ctrl à la suite comme ctrl-x ctrl-s
par exemple. Par contre, quand on veut faire un ctrl-x s , ça ne marche
pas et le clavier se retrouve en mode modal ctrl ;)

On peut, peut-être, procéder autrement. Avez vous une idée ?

Merci.

--
Jean-Christophe

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Florent Georges
Le #21805571
Jean-Christophe G. wrote:

Ca marche bien quand on utilise 2 ctrl à la suite comme ctrl-x ctrl-s
par exemple. Par contre, quand on veut faire un ctrl-x s , ça ne marche
pas et le clavier se retrouve en mode modal ctrl ;)



Je dirais qu'il faut lier les Button-Down Events a une commande
'ctrl' qui active le "modifier", et les Drag Events a une commande
'unctrl' qui desactive le "modifier". Ou d'utiliser un mecanisme de
"toggleing", selon l'utilisation que tu souhaites.

Et de toute maniere, il me semble bizarre d'utiliser a la fois les
Button-Down Events et les Click Events sur le meme bouton pour faire la
meme chose. Et sans utiliser les Drag Events.

Mais je ne suis pas specialiste es evenements d'entre, il s'agit
juste d'une idee.

Voir (info "(elisp)Button-Down Events") et (info "(elisp)Drag
Events").

--drkm
Florent Georges
Le #21805551
Jean-Christophe G. wrote:

J'essaye d'utiliser un clic de souris comme touche ctrl.



Au fait, pourquoi cette idee ? Ca ne me semble pas facilement
utilisable (beaucoup moins que la touche Ctrl, tout simplement).

--drkm
Jean-Christophe G.
Le #21805511
Bonjour,

Florent Georges a écrit :
Jean-Christophe G. wrote:

J'essaye d'utiliser un clic de souris comme touche ctrl.



Au fait, pourquoi cette idee ? Ca ne me semble pas facilement
utilisable (beaucoup moins que la touche Ctrl, tout simplement).



C'est uniquement pour tester une nouvelle façon de travailler.
Emacs implique d'avoir les 2 mains, en permanence, sur le clavier.
Mon but est de pouvoir utiliser emacs avec une main.

--
Jean-Christophe
Bastien
Le #21805501
"Jean-Christophe G."
C'est uniquement pour tester une nouvelle façon de travailler.
Emacs implique d'avoir les 2 mains, en permanence, sur le clavier.
Mon but est de pouvoir utiliser emacs avec une main.



Euh... c'est indiscret de demander ce que tu fais de l'autre ?

Si emacs requiert les deux mains, c'est parce qu'on n'en aura jamais
assez pour exploiter tous les raccourcis *et* taper du texte... moi
perso si je pouvais avoir une troisième main à la place de la souris,
je serais content!

--
Bastien
Jean-Christophe G.
Le #21805491
Bonjour,

Florent Georges a écrit :
Jean-Christophe G. wrote:

Ca marche bien quand on utilise 2 ctrl à la suite comme ctrl-x ctrl-s
par exemple. Par contre, quand on veut faire un ctrl-x s , ça ne marche
pas et le clavier se retrouve en mode modal ctrl ;)



Je dirais qu'il faut lier les Button-Down Events a une commande
'ctrl' qui active le "modifier", et les Drag Events a une commande
'unctrl' qui desactive le "modifier". Ou d'utiliser un mecanisme de
"toggleing", selon l'utilisation que tu souhaites.

Et de toute maniere, il me semble bizarre d'utiliser a la fois les
Button-Down Events et les Click Events sur le meme bouton pour faire la
meme chose. Et sans utiliser les Drag Events.



En fait, j'utilise la fonction logxor qui est un "ou" exclusif.
Donc appeler (ctrl) une 1ère fois active le modifier ctrl. Rappeler
(ctrl) une seconde fois désactive le modifier ctrl.
Ceci explique pourquoi je n'ai défini qu'une fonction pour faire 2 choses.

Avec la souris, pour faire un C-x C-s, il faut utiliser la séquence
"down-mouse-3 x s mouse-3". Cela fonctionne bien.

Pour faire un C-x s avec la souris, il faudrait faire la séquence
"down-mouse-3 x mouse-3 s". On voit alors qu'il y a un mouse-3 qui s'est
intercalé. Cela revient à faire un C-x mouse-3 s.
Ce n'est pas ce que je veux.

--
Jean-Christophe
Eric Reinbold
Le #21805481
Bastien
"Jean-Christophe G."
> C'est uniquement pour tester une nouvelle façon de travailler.
> Emacs implique d'avoir les 2 mains, en permanence, sur le clavier.
> Mon but est de pouvoir utiliser emacs avec une main.

Euh... c'est indiscret de demander ce que tu fais de l'autre ?

Si emacs requiert les deux mains, c'est parce qu'on n'en aura jamais
assez pour exploiter tous les raccourcis *et* taper du texte... moi
perso si je pouvais avoir une troisième main à la place de la souris,
je serais content!

--
Bastien



!!! Une troisième main, je serais déjà content d'en avoir deux, hé oui...

--
Eric Reinbold
Sébastien.kirche
Le #21805471
Eric Reinbold avait énoncé :

!!! Une troisième main, je serais déjà content d'en avoir deux, hé oui...



Je peux t'en filer une : j'en ai deux gauches.

--
Sébastien Kirche
Bastien
Le #21805461
Sébastien.kirche
Eric Reinbold avait énoncé :

!!! Une troisième main, je serais déjà content d'en avoir deux, hé oui...



Je peux t'en filer une : j'en ai deux gauches.



En perdre une gauche ne te redonnera pas une droite! Quoique.

--
Bastien
Florent Georges
Le #21805451
Jean-Christophe G. wrote:

En fait, j'utilise la fonction logxor qui est un "ou" exclusif.
Donc appeler (ctrl) une 1ère fois active le modifier ctrl. Rappeler
(ctrl) une seconde fois désactive le modifier ctrl.
Ceci explique pourquoi je n'ai défini qu'une fonction pour faire 2 chos es.



Ok, je n'avais pas bien saisi le probleme. Ce que tu demandes
implique que l'on puisse commencer une sequence d'evenements d'entre,
et au beau milieu de celle-ci, en demarrer une autre pour appeler une
commande, puis terminer la sequence initiale. Ce n'est a ma
connaissance pas possible.

Mais je peux me tromper.

--drkm
Poster une réponse
Anonyme