¿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?
¿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?
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 ...
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
Lea otras preguntas en las etiquetas terminal macos command-line