Comment mapper la touche "shift" pour "shift" + "capslock" à l'aide d'AutoHotkey?

J'utilise Vim, alors j'ai remappé le capslock à esc . Mais je préfère parfois le capslock . Je me demande donc de remapper shift to shift + capslock :

  1. Lorsque le décalage est utilisé de manière normale: appuyer longuement et relâcher, il devrait toujours fonctionner comme touche Maj changer la saisie en majuscule.
  2. Lorsque le décalage est activé (appuyez brièvement sur et relâchez), il doit alterner le capuchon .

Est-ce possible comme cela? Est-ce que quelqu'un connaît des scripts AutoHotkey ou des conseils sur la façon de le faire, ils pourraient partager?

Utilisez ce script AutoHotkey légèrement modifié de la réponse d' Elliot DeNolf :

~Shift:: duration := 0 If (GetKeyState("Shift","p")) { start := A_TickCount While (GetKeyState("Shift")) Sleep, 1 duration := A_TickCount - start } if (duration < 100) ; Change this value as needed if GetKeyState("CapsLock", "T") = 1 { SetCapsLockState, off } else if GetKeyState("CapsLock", "T") = 0 { SetCapsLockState, on } Return 

Si la touche Shift est enfoncée pendant moins de 100 millisecondes et relâchée, elle bascule la touche CapsLk . Plus de 100 ms et ça fonctionnera comme une touche modificatrice régulière.

Si 100 ms sont trop longs, choisissez une valeur appropriée dans la condition if .