Compruebe si las mayúsculas se bloquean en la terminal

8

¿Hay alguna forma de consultar al sistema para saber si el bloqueo de mayúsculas está activado o desactivado desde la línea de comandos en terminal.app?

    
pregunta Toothrot 13.10.2015 - 23:14

2 respuestas

9

Hay un gran código de línea de comando escrito por Stefenk en Macscripter

El código de Stefen le permite detectar cmd, opción, control, cambio y bloqueo de mayúsculas.

En su publicación, proporciona el código y un archivo zip de descarga.

Puedes descargarlo o crear el tuyo propio en Xcode usando el proyecto Foundation.

He probado ambas formas en El Capitán y ambas funcionan.

El código si desea crear el suyo propio en Xcode.app es:

#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;
}

---------- (actualizar - >

Si quieres compilarlo desde Terminal.app

Coloque el código en un archivo de texto plano. Acabo de usar TextEdit.app y un documento de texto sin formato.

cd al mismo directorio que tu archivo. Asegúrese de que la extensión sea .m (.c también estará bien)

Luego ejecuta.

gcc  -framework Carbon CheckModKeys.m -o CheckModKeys

CheckModKeys.m es su archivo.

CheckModKeys es el nombre de la aplicación que se va a generar.

& lt ;-)

Para detectar el bloqueo de mayúsculas, tu comando tendría un aspecto similar al siguiente:

/Users/UserName/MyFolder/CheckModKeys  capslock

se devolverá un 1 o 0.

1 para en

0 para desactivado

Todo el crédito es para Stefen. Acabo de recordar que publicó esta manera en el 2009. Y todavía funciona hoy ...

    
respondido por el markhunte 14.10.2015 - 02:11
2

Si tienes XQuartz instalado y ejecutando o no te importa que se inicie, puedes ejecutar: 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
    
respondido por el Mikey T.K. 13.10.2015 - 23:34

Lea otras preguntas en las etiquetas