10 votes

Vérifier si les capuchons se verrouillent dans le terminal

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 ?

12voto

markhunte Points 11634

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

2voto

Mikey T.K. Points 2555

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X