¿Hay alguna forma de consultar el 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 el sistema para saber si el bloqueo de mayúsculas está activado o desactivado desde la línea de comandos en terminal.app?
Respuestas:
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 zip de descarga.
Puedes descargarlo o crear el tuyo en Xcode usando el proyecto base.
Solo probé en ambos sentidos en El Capitán y ambos funcionan.
El código si desea construir el suyo 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;
}
---------- (actualización ->
Si quieres compilarlo desde Terminal.app
Ponga 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 su archivo. Asegúrese de que la extensión sea .m (.c también estará bien)
Entonces corre.
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m es su archivo.
CheckModKeys es el nombre de la aplicación que se generará.
<-)
Para detectar el bloqueo de mayúsculas, su comando se vería así:
/Users/UserName/MyFolder/CheckModKeys capslock
se devolverá un 1 o 0.
1 para el
0 para apagado
Todo el crédito va a Stefen. Acabo de recordar que publicó esto en el 2009. Y todavía funciona hoy ...
gcc -o getmod getmod.c
pero eso regresó getmod.c:4:5: error: expected expression @autoreleasepool { ^ 1 error generated.
Si tiene XQuartz instalado y ejecutándose o no le importa que se inicie, puede 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
xset
en El Capitan usando una cuenta de usuario predeterminada en bash. ¿Es esto parte de un shell específico o algo que tienes que instalar para que el comando funcione?
xset
es que hace que XQuartz.app se abra para que (`xset) se ejecute en una Terminal. Para mí, este es un comportamiento no deseado, ya que solo quiero una utilidad CLI que se ejecute como cualquier otro comando BSD.