Applescript che risponde ai tasti premuti?

0

Voglio scrivere un AppleScript che

  1. viene eseguito (in un ciclo) finché non premo esc
  2. "ascolta" per i tasti 1 , 2 , ecc.
  3. esegue un comando dato per ogni pressione di un tasto (eseguendo un comando di shell ddcctl per cambiare luminosità / contrasto del monitor secondario)

Ho cercato e tutto ciò che trovo riguarda la simulazione della pressione di un tasto.

(Se questo può essere fatto in bash va bene, ma non conosco abbastanza script di shell per iniziare ...)

Aggiorna

In base a questo suggerimento, Ho scritto lo script di shell qui sotto, che funziona benissimo, ma solo se lo eseguo all'interno di Terminal. Esiste un modo per eseguire questo script "invisibilmente", ad esempio da Spotlight o tramite AppleScript do shell script , e farlo rispondere fino a quando esco?

#!/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
    
posta Ze'ev 08.11.2016 - 11:06
fonte

2 risposte

1

Il modo più semplice per farlo è probabilmente usare Automator per creare un servizio. Il servizio dovrebbe semplicemente eseguire uno script bash simile a questo:

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

Quindi, in Preferenze di sistema sotto la tastiera, aggiungi una scorciatoia da tastiera per attivare il servizio.

In questo modo il tuo collegamento funzionerà su tutti i programmi.

Probabilmente dovrai eseguire questa operazione per ciascuna delle 10 scorciatoie da tastiera necessarie.

    
risposta data 08.11.2016 - 13:11
fonte
0

Ho appena trovato una soluzione incredibile. Puoi cambiare la luminosità con -b [+-]number . Ad esempio:

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

Riferimento: Come ottenere il controllo del volume del sistema sul monitor Dell .

    
risposta data 19.08.2017 - 16:10
fonte

Leggi altre domande sui tag