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?
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:
Il y a un excellent code de ligne de commande écrit par Stefenk sur Macscripter
Le code de Stefen vous permet de détecter les cmd, les options, le contrôle, le décalage et le verrouillage des majuscules.
Dans son message, il fournit le code et un zip de téléchargement de celui-ci.
Vous pouvez le télécharger ou créer le vôtre dans Xcode à l'aide d'un projet de fondation.
Je viens de tester les deux sens dans El Capitan et ils fonctionnent tous les deux.
Le code si vous souhaitez créer le vôtre dans Xcode.app est:
#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;
}
---------- (mise à jour ->
Si vous souhaitez le compiler depuis Terminal.app
Mettez le code dans un fichier texte brut. Je viens d'utiliser TextEdit.app et un document en texte brut.
cd dans le même répertoire que votre fichier. Assurez-vous que l'extension est .m (.c sera également ok)
Ensuite, exécutez.
gcc -framework Carbon CheckModKeys.m -o CheckModKeys
CheckModKeys.m est votre fichier.
CheckModKeys est le nom de l'application à sortir.
<-)
Pour détecter le verrouillage des majuscules, votre commande ressemblerait à ceci:
/Users/UserName/MyFolder/CheckModKeys capslock
un 1 ou 0 sera retourné.
1 pour le
0 pour off
Tout le mérite revient à Stefen. Je viens de me rappeler qu'il a posté de cette façon en`2009. Et ça marche encore aujourd'hui ..
gcc -o getmod getmod.c
mais cela est revenu getmod.c:4:5: error: expected expression @autoreleasepool { ^ 1 error generated.
Si XQuartz est installé et en cours d'exécution ou si cela ne vous dérange pas de le lancer, vous pouvez 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
xset
sur El Capitan en utilisant un compte d'utilisateur par défaut dans bash. Est-ce que cela fait partie d'un shell spécifique ou quelque chose que vous devez installer pour que la commande fonctionne?
xset
est que XQuartz.app s'ouvre pour qu'il (`xset) s'exécute dans un terminal. Pour moi, c'est un comportement indésirable car je voudrais juste un utilitaire CLI qui fonctionne comme n'importe quelle autre commande BSD.