AutoHotkey (teclado de la UE): cómo reasignar LCtrl manteniendo AltGr

AutoHotkey (teclado de la UE): cómo reasignar LCtrl manteniendo AltGr

Busqué preguntas anteriores, pero no encontré una solución para cambiar LAltcon LCtrl(o CapsLockcon LCtrl) conservando completamente AltGr, que corresponde a Ctrl+ Alt(¿o tal vez LCtrl+ RAlt?).

Esta es la pregunta más cercana, pero no puedo usar el Registro, tengo privilegios limitados. ¿Cambiar Ctrl y Alt con AutoHotKey sin estropear el conmutador Alt-Tab?

También relacionado: https://code.google.com/p/uawks/issues/detail?id=2

Estoy usando cualquiera de estos scripts simples:

LAlt::LCtrl
LCtrl::LAlt

Segundo:

LCtrl::CapsLock
CapsLock::LCtrl

Cada vez que presiono AltGrcon cualquier otra tecla, algo se atasca y tengo que presionar aleatoriamente Alt, Ctrlhasta que pueda escribir nuevamente. Si uso el segundo script, ¡CapsLock se activa!

Mi teclado es suizo y tengo muchas teclas con un tercer símbolo, por lo tanto, las necesito con frecuencia AltGr; reasignar cada una no sería una solución limpia.

Actualizar

Acabo de descubrir que los problemas AltGrse resuelven completamente agregando la siguiente línea al final de los dos scripts publicados anteriormente, pero no entiendo por qué sucede esto.

<^>!::RAlt

¿Por qué la reasignación de AltGras RAltALONE sigue produciendo el efecto de un regular AltGr?

Respuesta1

1) Si bien es simple por naturaleza, la lógica de esta publicación es difícil de seguir para aquellos de nosotros que no tenemos un teclado AltGr con el que simplemente realizar la prueba. En cualquier caso, hablo por mí mismo... por razones de comprensión, puede ser útil aclarar de qué script de dos líneas estás hablando, seguido de una lista de las teclas que presionas (y en qué orden), seguido de una lista de lo que resultados que obtienes. Luego, enumere el siguiente script, las claves y los resultados. O tal vez otros no necesiten esto, pero fue un poco difícil para mí seguirlo aunque creo que tiene toda la información crítica enumerada.

2) ¿Has mirado las reasignaciones de teclas de acceso rápido en los archivos de ayuda? Noté dos cosas con las que quizás quieras jugar. Primero está el uso de * como modificador. El segundo es el uso de 'Arriba' para activar un golpe ascendente para enviar un golpe ascendente diferente (es decir, enviar un golpe ascendente para un modificador diferente). Mire la redefinición de LWin que aparece en Teclas de acceso rápido en el archivo de ayuda:

*LWin::Send {LControl Down}
*LWin Up::Send {LControl Up}

3) A veces las cosas se atascan y, cuando eso sucede, a veces puedes solucionarlo enviando comandos 'Arriba' incluso si la tecla ya está activa. Técnicamente puede que no sea necesario, pero a veces funciona (y otras no).

4) Puede (o no) servir para buscar en la lista del historial de claves a través del menú Ver. A menudo, puede descubrir por qué las cosas se atascan o por qué fallan al observar el orden en que se procesan las claves (es decir, el orden en el que aparecen) y si se ignoran o no debido a las diversas razones enumeradas.

5) Como muestra el ejemplo de redefinición de LWin, es posible que desees utilizar el comando 'Enviar' o 'EnviarInput' para obtener más flexibilidad durante la resolución de problemas (si no terminas necesitándolo, por supuesto, puedes prescindir de él y hacer que el código sea más limpio, pero no duele nada). Por ejemplo, usar un comando Enviar hace que sea fácil agregar otro carácter o pulsación de tecla en una única reasignación de teclas de acceso rápido y luego observar el orden de activación en la lista del historial de teclas para ver quépiensafue presionado y en qué orden.

Si tuviera uno de estos teclados para probar, probablemente tomaría uno de los ejemplos de dos líneas que enumeró y lo convertiría en una reasignación de teclas de cuatro líneas, como en el ejemplo de reasignación de LWin, luego miraría lo que está sucediendo en el historia clave. También podría agregar una declaración de pausa para detectarla en el acto y poder ver el historial de pulsaciones de teclas hasta el punto en el que se ejecutó la pausa, lo que excluiría que el registro muestre cualquier tecla modificadora que se haya liberado.

No tengo idea de si esto funcionaría, pero aquí hay un resumen del tipo de cosas con las que podría comenzar para fines de depuración.

*LAlt::Send {LCtrl Down}
*LAlt Up::Send {LCtrl Up}
*LCtrl Up::Send {LAlt Up}
*LCtrl::
     Send {LAlt Down}
     Pause   ; once the script is paused you can go look at Key History
 Return

información relacionada