¿Applecript que responde a las pulsaciones de teclas?

0

Quiero escribir un AppleScript que

  1. se ejecuta (en un bucle) hasta que presione esc
  2. "escucha" las pulsaciones de teclado 1 , 2 , etc.
  3. ejecuta un comando dado para cada pulsación de tecla (ejecutar un comando de shell ddcctl para cambiar el brillo / contraste del monitor secundario)

He buscado y todo lo que encuentro se relaciona con simular al presionar una tecla.

(Si esto se puede hacer en bash está bien, pero no conozco suficientes scripts de shell para comenzar ...)

ACTUALIZAR

Basado en esta sugerencia, Escribí el script de shell a continuación, que funciona muy bien, pero solo si lo ejecuto dentro de Terminal. ¿Hay alguna forma de ejecutar este script 'invisiblemente', por ejemplo, desde Spotlight o mediante AppleScript do shell script , y que responda hasta que salga?

#!/bin/bash
if [ -t 0 ]; then stty -echo -icanon -icrnl time 0 min 0; fi
keypress=''
while [ "$k" != "^[" ]; do
    case "$k" in
        1) ddcctl -d 1 -b 10;;
        2) ddcctl -d 1 -b 20;;
        3) ddcctl -d 1 -b 30;;
        # ...etc...
        0) ddcctl -d 1 -b 100;;
    esac
    k="'cat -v'"
done
if [ -t 0 ]; then stty sane; fi
exit 0
    
pregunta Ze'ev 08.11.2016 - 11:06

2 respuestas

1

La forma más fácil de lograr esto es probablemente usar Automator para crear un Servicio. El servicio solo debe ejecutar un script de bash similar a este:

#!/bin/bash
ddcctl -d 1 -b 10

Luego, en Preferencias del sistema en Teclado, agregue un método abreviado de teclado para activar su Servicio.

De esta manera, su acceso directo funcionará en todos los programas.

Probablemente deba hacer esto para cada uno de los 10 atajos de teclado que necesita.

    
respondido por el jksoegaard 08.11.2016 - 13:11
0

Acabo de encontrar una solución increíble. Puedes cambiar el brillo con -b [+-]number . Por ejemplo:

#!/bin/bash ddcctl -d 1 -b +10

Referencia: Cómo obtenga el control de volumen del sistema en el monitor Dell .

    
respondido por el BokukPark 19.08.2017 - 16:10

Lea otras preguntas en las etiquetas