스크립트를 통해“모든 F1, F2를 표준 키로 사용”토글 …했지만 실패했습니다. 업데이트 :

“모든 F1, F2를 표준 키로 사용”설정을 매우 자주 토글하고 스크립트 (또는 키보드 단축키)를 통해이를 자동화하고 싶습니다. 가능합니까? Google에 올바른 주장을 defaults write ...했지만 실패했습니다.

fn 설정


업데이트 : 나는 여기에 답변을 기반으로 https://github.com/jkbrzt/macos-fn-toggle 을 만들었습니다 .

업데이트 II : 이제 https://github.com/Pyroh/Fluor 도 있습니다. 활성 응용 프로그램에 따라 키보드의 fn 키 동작을 자동으로 변경할 수있는 멋진 메뉴 표시 줄 앱입니다.



답변

tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

을 사용할 수도 defaults write -g com.apple.keyboard.fnState -bool true있지만 로그 아웃했다가 다시 로그인하지 않고 변경 사항을 적용 할 방법을 모르겠습니다.


답변

나는 스크립트에 대해 잘 모르지만 편리한 리버스 엔지니어링과 인터넷 검색을 통해 기존의 AppleScript GUI를 좋아하지 않기 때문에 이것을 만들었습니다.

https://github.com/nelsonjchen/fntoggle

컴파일 된 바이너리 (PATH에 던지거나 그게 무엇인지 모르는 경우 /usr/local/bin/) :
https://github.com/nelsonjchen/fntoggle/releases

또는 sh을 실행 하여 무엇이든 (ControlPlane, Automator 등) 호출하십시오 .fntoggle onfntoggle off

이 스크립트는 GUI 액세스 가능성을 설정하지 않아도됩니다. 또한 로그 아웃했다가 다시 로그인 할 필요가 없습니다.


답변

다음을 통해 현재 상태를 읽을 수 있습니다. (F 키의 경우 1, 미디어 / 밝기의 경우 0)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

쓸 수는 있지만 재부팅 할 때까지 변경되지 않습니다. (나는 대신 Dock과 Finder를 죽이려고했지만 운이 없다)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

이 plist 파일을 읽는 것에 대해 더 많은 지식을 가진 사람 이이 plist를 읽는 것을 죽이고 다시 시작하는 스크립트를 작성하여 변경 사항을 인정해야한다고 생각합니다.


답변

사실, 스포트라이트 또는 다른 앱을 실행할 필요가 없습니다. 제 생각에는 가장 좋은 방법은 다음과 같습니다.

  1. Automator에서 새로운 서비스 생성
  2. 드래그 : “Apple 스크립트 실행
  3. “선택된 서비스 수령자”에서 : 입력을 선택하지 마십시오
  4. 이 다른 답변 에서이 코드를 붙여 넣으십시오 .

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
  5. “yourname”으로 저장

  6. 시스템 환경 설정 → 키보드 → 바로 가기를 엽니 다.
  7. 왼쪽 메뉴에서 “서비스”를 선택하십시오.
  8. 오른쪽에서 일반까지 아래로 스크롤하고 서비스에 고유 한 단축키를 지정하십시오 .cmd + shift + L을 선택하십시오.

  9. 그게 다야! 빠르거나 빠르지는 않지만 앱을 실행하거나 환경 설정으로 직접 이동할 필요는 없습니다.

부록 : EL Capitan을 사용하면 Automator에 포커스가있을 때만 작동합니다. 그렇지 않으면 (예 : 키보드 단축키를 통해 스크립트를 호출하는 경우) “AppleScript 실행”작업에 오류가 발생했습니다 “라는 메시지가 표시됩니다.


답변


답변

모든 대답이 주어지면 요세미티에 다음 솔루션을 적용했습니다.

Automator를 사용하여 다음 코드로 앱을 만들었습니다.

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

저장하고 응용 프로그램에 추가하십시오. “AppleScript Editor는 보조 액세스가 허용되지 않습니다.”를 피하려면 시스템 환경 설정-> 보안 및 개인 정보-> 개인 정보 탭-> 접근성 항목으로 이동하여 앱을 추가하십시오.

나처럼 지름길을 원한다면 Automator에서 Launch App으로 새로운 Apple Script를 생성하고 앱을 선택하십시오. 그런 다음 시스템 환경 설정-> 키보드-> 단축키 탭-> 서비스 항목으로 돌아가서 목록 끝에서 스크립트에 단축키를 지정하십시오.