Controlla se i tappi si bloccano nel terminale

8

C'è un modo per interrogare il sistema per sapere se il blocco maiuscole è attivo o è disattivato dalla riga di comando in terminal.app?

    
posta Toothrot 13.10.2015 - 23:14
fonte

2 risposte

9

C'è un grande codice a riga di comando scritto da Stefenk su Macscripter

Il codice di Stefen consente di rilevare per cmd, opzione, controllo, maiuscole e blocco maiuscole.

Nel suo post fornisce il codice e uno zip di download.

Puoi scaricarlo o crearne uno personale in Xcode utilizzando il progetto di base.

Ho appena provato entrambi i modi in El Capitan e entrambi funzionano.

Il codice se vuoi crearne uno in Xcode.app è:

#import <Carbon/Carbon.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        unsigned int modifiers = GetCurrentKeyModifiers();
        if (argc == 1)
            printf("%d\n", modifiers);
        else {
            int i, result = 1;
            for (i = 1; i < argc; ++i) {
                if (0 == strcmp(argv[i], "shift"))
                    result = result && (modifiers & shiftKey);
                else if (0 == strcmp(argv[i], "option"))
                    result = result && (modifiers & optionKey);
                else if (0 == strcmp(argv[i], "cmd"))
                    result = result && (modifiers & cmdKey);
                else if (0 == strcmp(argv[i], "control"))
                    result = result && (modifiers & controlKey);
                else if (0 == strcmp(argv[i], "capslock"))
                    result = result && (modifiers & alphaLock);
            }
            printf("%d\n", result);
        }
    }
    return 0;
}

---------- (aggiorna - >

Se vuoi compilarlo da Terminal.app

Inserisci il codice in un file di testo normale. Ho appena usato TextEdit.app e un documento di testo semplice.

cd nella stessa directory del tuo file. Assicurati che l'estensione sia .m (.c andrà bene anche)

Quindi Esegui.

gcc  -framework Carbon CheckModKeys.m -o CheckModKeys

CheckModKeys.m è il tuo file.

CheckModKeys è il nome dell'app da emettere.

< -)

Per rilevare il blocco delle maiuscole, il comando sarà simile a:

/Users/UserName/MyFolder/CheckModKeys  capslock

verrà restituito 1 o 0.

1 per on

0 per disattivato

Tutto il merito va a Stefen. Mi sono appena ricordato di aver pubblicato così nel 2009. E funziona ancora oggi ..

    
risposta data 14.10.2015 - 02:11
fonte
2

Se hai XQuartz installato e sei in esecuzione o non ti dispiace avviarlo, puoi eseguire: xset -q

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000000
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    off    02: Shift Lock:  off
    03: Group 2:     off    04: Mouse Keys:  off    05: Scroll Lock: off
    
risposta data 13.10.2015 - 23:34
fonte

Leggi altre domande sui tag