Como tengo un uso limitado de las manos, utilizo el Control por Voz para dictar la mayor parte de mi texto. (El Control por Voz ofrece la posibilidad de añadir comandos personalizados, incluidos los que ejecutan un flujo de trabajo de Automator. Automator, a su vez, puede ejecutar JavaScript o AppleScript arbitrarios. (Yo prefiero JavaScript). Lo que quiero hacer es crear un script que tome el texto actualmente seleccionado en cualquier aplicación que esté activa, lo manipule y luego reemplace el texto seleccionado en su lugar. Por ejemplo, imagina crear un comando "guionizar esto" que convierta el texto seleccionado en esto - "Mac Voice Control scripting"- y lo cambie por esto - "Mac-Voice-Control-scripting". Escribir el JavaScript o AppleScript para transformar la cadena es la parte fácil. El problema es cómo obtener el texto seleccionado para la aplicación actual, sea cual sea.
En Automator, puede crear un flujo de trabajo de "Acción rápida" que se supone que pasa el texto seleccionado actualmente y le permite reemplazarlo. En la práctica, sin embargo, en Big Sur (al menos) no pude conseguir que este flujo de trabajo recibiera texto de ninguna aplicación. Dado un estándar run()
la función input
era siempre de longitud 0.
¿Cómo puedo crear un flujo de trabajo que pueda ser ejecutado por un comando personalizado en el control por voz que reciba, procese y reemplace el texto actualmente seleccionado en la aplicación actual?