0 votos

¿Cómo puedo configurar una tecla para "Iniciar dictado" con un teclado ergonómico Microsoft Surface?

Tengo un teclado ergonómico Microsoft Surface emparejado a mi MacBook Pro por Bluetooth.

Microsoft Surface Ergonomic Keyboard

MacOS ha detectado el teclado como "Teclado ergonómico". Cuando voy a la configuración del teclado y hago clic en "Teclas modificadoras...", cree que tengo un en lugar de Fn . Pero este teclado no tiene (que yo sepa), y sí tiene un Fn . Pulsando Fn enciende y apaga una luz en la tecla.

Aquí están las opciones de "Teclas modificadoras...":

Ergonomic Keyboard Modifier Keys options

Configuración del teclado:

Keyboard settings with Globe key for Start Dictation

El problema es que al pulsar Fn dos veces no inicia el dictado. En su lugar, sólo cambia Fn encender y apagar la luz. No estoy 100% seguro de cómo funciona esto, pero tal vez esto es en realidad sólo alternar un estado interno dentro del teclado. Tal vez no envía un evento de pulsación de tecla hasta que realmente pulse una de las teclas de función (por ejemplo. F1 , F2 ), y el Fn estado sólo determina si envía un F1 o una de las funciones especiales (por ejemplo, silenciar, reproducir/pausar, etc.)

¿Es posible configurar Fn ¿para iniciar el dictado? ¿Es posible cambiar un ajuste en el teclado para desactivar el Fn la luz se enciende y se apaga, y envía un Fn / evento de pulsación de tecla?

Instalé Karabiner-Elements y jugué con él, pero no pude averiguar cómo cambiar el comportamiento de Fn o reasignarlo. Pude reasignar el derecho Windows como Fn así que puedo empezar a dictar pulsando esta tecla dos veces. Pero aún así me interesaría saber si es posible utilizar la tecla Fn .

Karabiner-Elements configuration

0voto

nathan.f77 Puntos 168

Finalmente encontré una solución decente con Karabiner-Elements . Acabo de descubrir que admite reglas complejas con variables, condiciones y retardos, por lo que he podido personalizar el comportamiento del Enter de mi teclado. He configurado una regla que iniciará el dictado si la pulso dos veces, pero aún puedo utilizar la tecla Enter si sólo la pulso una vez (con un breve retardo.)

Aquí está mi regla JSON:

{
  "title": "Double tap keypad_enter to double tap fn (start dictation.) Single tap for keypad_enter after a short delay (250ms.)",
  "rules": [
    {
      "description": "This rule solves a problem with the Microsoft Surface Ergonomic Keyboard. The `Fn` key can't be used to start dictation, since it only toggles an internal state on and off, and it does not actually send any keypress event. This rule allows you to start dictation by double tapping the keypad enter key, which will send Fn twice. If you only press the keypad enter key once, it will send the original enter key after a short delay (250ms).",
      "manipulators": [
        {
          "conditions": [
            {
              "name": "keypad_enter pressed",
              "type": "variable_if",
              "value": 1
            }
          ],
          "from": {
            "key_code": "keypad_enter",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "key_code": "fn"
            }
          ],
          "type": "basic"
        },
        {
          "from": {
            "key_code": "keypad_enter",
            "modifiers": {
              "optional": [
                "any"
              ]
            }
          },
          "to": [
            {
              "set_variable": {
                "name": "keypad_enter pressed",
                "value": 1
              }
            },
            {
              "key_code": "fn"
            }
          ],
          "parameters": {
            "basic.to_delayed_action_delay_milliseconds": 250
          },
          "to_delayed_action": {
            "to_if_canceled": [
              {
                "set_variable": {
                  "name": "keypad_enter pressed",
                  "value": 0
                }
              }
            ],
            "to_if_invoked": [
              {
                "set_variable": {
                  "name": "keypad_enter pressed",
                  "value": 0
                }
              },
              {
                "key_code": "keypad_enter"
              }
            ]
          },
          "type": "basic"
        }
      ]
    }
  ]
}

También he enviado un PR para añadir este ejemplo a su documentación.

Si este PR se fusiona, podrá visitar https://ke-complex-modifications.pqrs.org y haga clic en el botón azul "Importar" para importar el JSON a su aplicación Karabiner-Elements.

https://ke-complex-modifications.pqrs.org screenshot

Mientras tanto, aquí se explica cómo importar manualmente la regla.

Abra un nuevo archivo en su editor de texto y pegue el JSON anterior. Guarde el archivo en su directorio de inicio: ~/double_tap_keypad_enter_to_double_tap_fn.json

Abra un terminal y ejecute estos comandos:

mkdir -p ~/.config/karabiner/assets/complex_modifications/
mv ~/double_tap_keypad_enter_to_double_tap_fn.json ~/.config/karabiner/assets/complex_modifications/

(El ~/.config suele estar oculto del Finder y de la ventana "Guardar archivo", por lo que es más fácil utilizar el terminal para este paso).

Ir a la Modificaciones complejas y haga clic en Añadir regla . (No es necesario reiniciar Karabiner-Elements si ya se está ejecutando, debería encontrar el nuevo archivo JSON inmediatamente).

Complex Modifications => Add Rule

Deberías ver la nueva norma. Haga clic en "Activar".

Enable the new rule

Por último, asegúrate de que la configuración del teclado es correcta. (Por si has estado probando otras cosas antes de encontrar esta solución).

Abra las Preferencias del Sistema y haga clic en "Teclado".

Asegúrese de que el acceso directo de dictado está configurado correctamente: "Pulse para iniciar el dictado (Pulse dos veces)"

dictation shortcut

Nota al margen: El Teclado Ergonómico Microsoft Surface en realidad no tiene un Globe key, pero esto es sólo el Fn con un nombre y un icono diferentes.

Ahora haz clic en "Teclas modificadoras":

keyboard modifier keys button

Debería ver el controlador del teclado virtual Karabiner, y el Globo ( ) debe ajustarse a Globo.

keyboard settings modifier keys

La regla ya está activa, así que abre tu editor de texto y pruébala. Cuando pulses una vez la tecla intro del teclado, deberías ver una nueva línea tras un breve retardo. Cuando la pulses dos veces, debería empezar el dictado.

Por favor, siéntase libre de modificar esta regla y elegir su propia clave, o cambiar toda la lógica. Espero que este ejemplo pueda ayudarle a empezar con sus propias personalizaciones. Asegúrese de que consulte otros ejemplos en la documentación y lea el "documentación "modificación compleja para ver todo lo que puede hacer con Karabiner-Elements.

¡Que aproveche!

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X