Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser le clic droit de la souris comme touche ctrl ?

9 réponses
Avatar
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

9 réponses

Avatar
Florent Georges
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
Avatar
Florent Georges
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
Avatar
Jean-Christophe G.
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
Avatar
Bastien
"Jean-Christophe G." writes:

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
Avatar
Jean-Christophe G.
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
Avatar
Eric Reinbold
Bastien writes:

"Jean-Christophe G." writes:

> 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
Avatar
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.

--
Sébastien Kirche
Avatar
Bastien
Sébastien.kirche writes:

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
Avatar
Florent Georges
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