¿Hay algún programa que te permita crear atajos de teclado que consisten en teclas normales?

Estoy buscando un método que me permita convertir combinaciones de teclas personalizadas y no estándar en una clave intermedia no utilizada actualmente (como F16o algo así). La tecla intermediaria podría entonces ser reconocida en otras aplicaciones (como FastScripts), de modo que finalmente pueda asignar este atajo de teclado intermedio a cualquier acción dentro de esa aplicación que desee.

Por "combinaciones de teclas no estándar" me refiero a combinaciones que no incorporan ninguna tecla modificadora (es decir, ⌘ command, ⌥ option, ⌃ control, fno ⇧ shift).

Ejemplos de combinaciones de teclas no estándar, presionadas simultáneamente:

  • 1+0

  • A+D

  • space bar+V

  • W+5

  • tab+Q

He instalado Karabiner , pero no veo la forma de lograr esto en Karabiner.

¿Hay algún programa que pueda hacer lo que estoy buscando?

OS X El Capitán, versión 10.11.6.

tal vez las secuencias de teclas de BTT podrían funcionar. docs.bettertouchtool.net/docs/key_sequences.html .
@hyph Interesante. No estoy familiarizado con BetterTouchTool. ¿Sabes si solo funcionará si las pulsaciones de teclas ocurren en una secuencia, o también funcionará si las pulsaciones de teclas ocurren simultáneamente?
Creo que en realidad no leí sus requisitos correctamente. Solo puede desencadenar estas secuencias con un atajo normal (con un modificador). No de la otra manera.

Respuestas (3)

Esto se puede hacer en Karabiner, pero es contrario a la intuición y pone patas arriba el uso común del teclado (verifique las primeras oraciones de la respuesta de Monomeeth).

Ya se proporciona un ejemplo de [M+N] a F13 en los ajustes preestablecidos de Karabiner:

ingrese la descripción de la imagen aquí

Asignar 1+0 a F16 requeriría agregar el siguiente fragmento de código a private.xml:

<item>
  <name>Simultaneous Key Presses [0+1] to F16</name>
  <identifier>remap.simultaneouskeypresses_012f16</identifier>
  <autogen>__SimultaneousKeyPresses__ KeyCode::KEY_0, KeyCode::KEY_1, KeyCode::F16</autogen>
</item>

Al definir una tecla vk_lazy adicional (es decir, 0), también debería ser posible presionar primero 0 y luego 1 y, dependiendo de la primera tecla, enviar un F16 o escribir 01, que es un comportamiento más cómodo al escribir "atajos" en un teclado.

¿Se pueden configurar los accesos directos de Karabiner por aplicación?
@hyph Claro, algunas aplicaciones están predefinidas en appdef.xml pero puede agregar otras. Para restringir el "atajo" anterior solo a Excel, habría que agregar <only>EXCEL</only>el fragmento (¡Excel está predefinido!).
Me enseñaste algo nuevo sobre Karabiner. Había visto el atajo [M+N] antes de hacer mi publicación, pero había asumido erróneamente que esta combinación fija era el único atajo de tecla regular que Karabiner era capaz de crear. Probé los 5 atajos de ejemplo de mi publicación original usando su método, ¡y Karabiner funciona a la perfección! ¡Gracias! Además, creo que ahora estoy de acuerdo con tu última oración (cuanto más lo pienso). (Notas personales: inserte el primer elemento personalizado en la línea a continuación </root>. Al editar el archivo XML, tenga en cuenta que distingue entre mayúsculas y minúsculas).
Esta es una gran solución. ¡Me gusta lo personalizable que es Karabiner, obviamente!

No creo que lo que quieres hacer sea posible si Karabiner no puede hacerlo.

La razón por la que tenemos teclas modificadoras (es decir control, option, shift, y command) es que necesitan modificar las teclas alfanuméricas estándar para que se reconozcan como algo más además de su valor alfanumérico. Permítanme explicar esto más:

  • Cuando se presiona una tecla alfanumérica, su entrada se envía a la aplicación activa más avanzada. Entonces, si tiene MS Word abierto y, usando su primer método abreviado de teclado de ejemplo: 1+ 0, MS Word reconocerá al presionar estas teclas como '1' y '0' respectivamente a menos que se modifique su valor (por ejemplo, con una tecla modificadora) .
  • Pero, lo que quiere hacer de manera efectiva, usando su primer método abreviado de teclado de ejemplo: 1+ 0nuevamente como ejemplo, es usar la 1tecla como tecla modificadora y/o el hecho de que ambas teclas 1y , si se presionan simultáneamente , representan algo diferente a un '1' y '0'.0
  • Ahora puede ver por qué esto puede causar problemas: si la 1tecla actúa como una tecla modificadora, ¿cómo hace que la aplicación activa reconozca un '1' cuando lo necesita? O, si desea que esto funcione solo cuando las teclas 1+ 0se presionan simultáneamente, ¿qué sucede si cualquiera de las teclas se presiona ligeramente antes que la otra tecla? Eso no es simultáneo y, por lo tanto, su entrada se arruinará (por así decirlo).
  • Entonces, para que esto funcione, Karabiner (o alguna otra utilidad) tendrá que ser lo suficientemente inteligente como para manejar este enigma. Como menciona Thomas Tempelmann en su comentario a continuación, una forma de hacer esto sería agregar un retraso después de presionar las teclas para que la aplicación que está más adelante aún no reconozca la tecla. Pero, por supuesto, cualquier retraso de este tipo tendrá que ser muy corto (créanme, incluso un retraso de una fracción de segundo en algo puede hacer que los usuarios sientan que un sistema no responde).

Es posible que desee consultar la página Pautas de la interfaz humana de macOS: métodos abreviados de teclado para comprender mejor las pautas de Apple para los desarrolladores al respecto.

Aparte, cuando los desarrolladores crean juegos y se usa una tecla para un propósito específico (por ejemplo, la Ztecla mueve el personaje hacia la izquierda), el juego aún reconoce la Ztecla como una 'Z' pero acaba de programarse para aceptar el valor 'Z'. en el sentido de que el personaje se mueve hacia la izquierda.

Cualquier software que parezca cambiar la acción de presionar una tecla (por ejemplo, juegos que le permiten personalizar sus controles o utilidades como USB Overdrive, ControllerMate, etc.) aún aceptan el valor predeterminado de la tecla en lugar de tener que modificarlos, y así es como logran su función.

Por ejemplo, un usuario puede usar USB Overdrive para asignar una tecla (digamos la Ttecla) a una función particular con o sin el uso de teclas modificadoras, pero cuando se usan sin una tecla modificadora, aún se reconoce que tienen su entrada original. Así que tampoco creo que te vayan a ser útiles y, por supuesto, no están diseñados para crear atajos de teclado per se. Sin embargo, puede comprobarlos de todos modos (puede probarlos gratis) en caso de que pueda engañar a cualquiera de ellos para que haga lo que quiere:

Notas:

  1. He usado USB Overdrive y ControllerMate, pero no tengo ninguna asociación con ellos.
  2. Si sirve de algo, ControllerMate ofrece una funcionalidad más avanzada (pero es más difícil de dominar).
  3. Es posible que desee ponerse en contacto con el soporte de Karabiner o enviar un correo electrónico al desarrollador, ya que sigo pensando que es su mejor opción y puede hacer lo que quiere.
Como desarrollador, encuentro tu explicación confusa. ¿No sería mucho más claro decir que usar teclas como '0' y '1' como modificadores crea un problema porque, por lo general, cuando presiona esa tecla, se reenvía inmediatamente a la aplicación frontal como una tecla escrita? Ahora, si desea que 0+1 genere una clave diferente, entonces la pregunta es qué sucederá si presiona 0 un poco antes que 1. ¿Cómo sabrá que 1 seguirá pronto y, por lo tanto, NO le dirá a la aplicación frontal que 0? ha sido presionado? ¿Quiere tener todas las claves retrasadas todo el tiempo para que esto funcione? Si puedes manejar eso, podría funcionar.
@ThomasTempelmann Tienes toda la razón, mi explicación no fue muy clara. Gracias por traer eso a mi atención. :) Normalmente actualizaría mi respuesta, pero como parece que Klanomath ha proporcionado una explicación sobre cómo el OP puede hacer lo que quiera con Karabiner, eliminaré esta respuesta en breve, ya que no creo que realmente agregue ningún valor. A menos que pienses lo contrario?
@klanomath me ha informado cómo lograr lo que quiero en Karabiner. Karabiner funciona perfectamente para cada combo variopinto que le lancé, lo cual es excelente. Por cierto, la razón por la que quería esta habilidad es por mi propensión a los atajos de teclado convenientes con una sola mano; Puedo ejecutarlos más rápido y con menos deliberación. Abrir todas las teclas regulares expande dramáticamente la cantidad de atajos de teclado adyacentes o casi adyacentes que puedo asignar. Tomo su punto sobre el concepto de teclas modificadoras: ciertamente se prefieren los accesos directos con una tecla modificadora.
@ThomasTempelmann Mencionas preocupaciones importantes. Para mi uso, mientras mi cursor no esté en un campo de texto cuando active un atajo (por ejemplo, presionando simultáneamente las teclas A+D o las teclas 1+0), no hay efectos secundarios. Si es así, simplemente tendré que hacer clic fuera de un campo de texto antes de la ejecución. Ahora, los atajos que involucran la pestaña o la barra espaciadora son más problemáticos. Pero en realidad no planeo implementar ninguno de estos; simplemente sirvieron como ejemplos en mi OP del tipo de cosas que quería hacer. Me quedo con letras/números/teclas de puntuación. Pero sí, tu segundo punto es muy cierto.
@Monomeeth Por favor, no elimine su respuesta/comentario.
@ThomasTempelmann ¡Parece que tenemos un consenso! Actualicé mi respuesta para aclarar lo que estaba tratando de decir; gracias nuevamente por señalarme que no estaba claro. Además, siéntase libre de editar mi respuesta si puede mejorarla. :)
@klanomath Gracias por sus comentarios. Decidí no eliminar mi respuesta y la actualicé para aclarar lo que estaba tratando de decir. :)

iKey debería hacer lo que quieres hacer.

¡Bienvenido a Ask Different! Estamos tratando de encontrar las mejores respuestas y esas respuestas proporcionarán información sobre por qué son las mejores. Explique por qué cree que la respuesta que proporcionó resolverá el problema o es mejor que otras. Proporcionar enlaces como información de apoyo también puede ayudar al OP y a otros a encontrar información adicional por sí mismos. Consulte Cómo responder sobre cómo proporcionar una respuesta de calidad.