터미널에 캡이 고정되어 있는지 확인 줄에서 캡 잠금이 켜져 있는지

terminal.app의 명령 줄에서 캡 잠금이 켜져 있는지 여부를 알리기 위해 시스템을 쿼리하는 방법이 있습니까?



답변

Macscripter에 Stefenk가 작성한 훌륭한 명령 행 코드가 있습니다.

Stefen의 코드를 사용하면 cmd, 옵션, 제어, Shift 및 Caps Lock을 감지 할 수 있습니다.

그의 직책에서 그는 코드와 다운로드 zip을 제공합니다.

기초 프로젝트를 사용하여 Xcode에서 다운로드하거나 직접 빌드 할 수 있습니다.

나는 엘 캐피 탄에서 두 가지 방법을 테스트했으며 둘 다 작동합니다.

Xcode.app에서 직접 빌드하려는 경우 코드는 다음과 같습니다.

#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;
}

———- (업데이트->

Terminal.app에서 컴파일하려면

코드를 일반 텍스트 파일에 넣습니다. 방금 TextEdit.app와 일반 텍스트 문서를 사용했습니다.

파일과 같은 디렉토리에 CD를 넣으십시오. 확장자가 .m인지 확인하십시오 (.c도 괜찮습니다)

그런 다음 실행하십시오.

gcc  -framework Carbon CheckModKeys.m -o CheckModKeys

CheckModKeys.m은 파일입니다.

CheckModKeys는 출력 될 앱의 이름입니다.

<-)


캡 잠금을 감지하려면 명령이 다음과 같습니다.

/Users/UserName/MyFolder/CheckModKeys  capslock

1 또는 0이 반환됩니다.

에 1

꺼짐 0


모든 크레딧은 Stefen으로갑니다. 나는 그가 2009 년에이 방법을 다시 게시 한 것을 기억했다. 그리고 그것은 오늘날에도 여전히 작동합니다 ..


답변

당신이있는 경우 XQuartz가 실행 중 하나를 설치하거나 실행 상관하지 않습니다, 당신은 실행할 수 있습니다 :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


답변