Existe-t-il un moyen d'interroger le système pour savoir si le verrouillage des majuscules est activé ou désactivé à partir de la ligne de commande dans terminal.app ?
Réponses
Trop de publicités?Il existe un excellent code de ligne de commande écrit par Stefenk sur Macscripter
Le code de Stefen permet de détecter les touches cmd, option, control, shift et caps lock.
Dans son billet, il fournit le code et un zip de téléchargement.
Vous pouvez soit le télécharger, soit le créer vous-même dans Xcode en utilisant le projet foundation.
J'ai testé les deux méthodes dans El Capitan et elles fonctionnent toutes les deux.
Le code si vous voulez construire le vôtre dans Xcode.app est le suivant :
#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;
}
----------( update ->
Si vous voulez le compiler à partir de Terminal.app
Placez le code dans un fichier texte. J'ai utilisé TextEdit.app et un document en texte brut.
cd dans le même répertoire que votre fichier. Veillez à ce que l'extension soit .m ( .c est également acceptable).
Puis courir.
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m est votre fichier.
CheckModKeys est le nom de l'application à éditer.
<-)
Pour détecter le verrouillage des majuscules, votre commande ressemblerait à quelque chose comme :
/Users/UserName/MyFolder/CheckModKeys capslock
un 1 ou un 0 sera renvoyé.
1 pour le
0 pour arrêt
Tout le mérite en revient à Stefen. Je viens de me rappeler qu'il a posté ce texte en 2009. Et cela fonctionne encore aujourd'hui
Si vous avez XQuartz installé et en cours d'exécution ou que vous ne vous souciez pas de son lancement, vous pouvez l'exécuter : 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