
나는 외부 키보드가 있거나 없는 Mavericks(10.9.4)를 실행하는 두 대의 컴퓨터에서 이것을 테스트했으며 모든 경우에 동작은 아래에 설명되어 있습니다.
아래에시스템 환경설정 > 키보드 > 단축키"Mission Control" 섹션에서 "Show Desktop" 바로가기를 활성화하고 이를 F5에 할당했습니다. 마찬가지로 "대시보드 표시"를 F6에 할당했습니다.
"F1, F2 등의 모든 키를 표준 기능 키로 사용" 설정에 관계없이fn이러한 바로가기 및 바로가기 작업에 대해서는 키가 무시됩니다.언제나이 발생하면 F5 및 F6이 "정상적으로" 작동하도록 하는 것이 불가능해집니다(예: Terminal.app에서). "기본" 단축키(예: Mission Control의 경우 F3, LaunchPad의 경우 F4)가 있다는 점은 주목할 가치가 있습니다.하다작업fn원하는 대로/예상대로:fn해당 키를 누르는 동안 수정자는 동작을 "뒤집습니다"("모든 F1, F2 등의 키 사용" 옵션 설정 방법에 따라 다름).
"KeyRemap4MacBook"(지금은 "KeyRemap4MacBook"이라고 함)을 설치했습니다.카라비너) 다음을 사용하여 키보드 이벤트 디버그 로깅을 활성화했습니다.
sudo sysctl -w keyremap4macbook.debug=1
F5 없이fn열쇠
Jul 17 09:07:54 KeyboardEventCallback [sending]: eventType 10, flags 0x00000000, key 0x0060, kbdType 46, repeat = 0
Jul 17 09:07:54 KeyboardEventCallback [sending]: eventType 11, flags 0x00000000, key 0x0060, kbdType 46, repeat = 0
F5를 사용하여fn열쇠
Jul 17 09:07:58 KeyboardEventCallback [sending]: eventType 12, flags 0x00800000, key 0x003f, kbdType 46, repeat = 0
Jul 17 09:07:59 KeyboardEventCallback [sending]: eventType 10, flags 0x00800000, key 0x0060, kbdType 46, repeat = 0
Jul 17 09:07:59 KeyboardEventCallback [sending]: eventType 11, flags 0x00800000, key 0x0060, kbdType 46, repeat = 0
Jul 17 09:08:01 KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003f, kbdType 46, repeat = 0
그리고 비교를 위해...
F1 없이fn열쇠
Jul 17 09:09:11 KeyboardEventCallback [sending]: eventType 10, flags 0x00000000, key 0x0091, kbdType 46, repeat = 0
Jul 17 09:09:11 KeyboardEventCallback [sending]: eventType 11, flags 0x00000000, key 0x0091, kbdType 46, repeat = 0
F1fn열쇠
Jul 17 09:09:16 KeyboardEventCallback [sending]: eventType 12, flags 0x00800000, key 0x003f, kbdType 46, repeat = 0
Jul 17 09:09:17 KeyboardEventCallback [sending]: eventType 10, flags 0x00800000, key 0x007a, kbdType 46, repeat = 0
Jul 17 09:09:17 KeyboardEventCallback [sending]: eventType 11, flags 0x00800000, key 0x007a, kbdType 46, repeat = 0
Jul 17 09:09:19 KeyboardEventCallback [sending]: eventType 12, flags 0x00000000, key 0x003f, kbdType 46, repeat = 0
F1의 경우fn키(키 코드 0x3F)가 다운된 경우 키 코드는 0x91("BRIGHTNESS_DOWN") 대신 0x7A("F1")이지만 F5의 경우 키는 0x60("F5")으로 유지됩니다.
키보드 단축키 prefpane을 처리하는 것이 무엇이든 상태를 포함할 수 있는 방법이 없는 것 같습니다.fn수정자.
그래서 내 질문은 다음과 같습니다. 기능 키에 키보드 단축키를 할당하여 기본 시스템 단축키처럼 작동하고fn키를 "일반" 동작과 "바로가기" 동작 사이를 전환할 수 있나요?
답변1
많은 덕분에예제 구성 파일~에 카라비너(이전에는 로 알려짐 KeyRemap4MacBook
) 다음을 생각해 내 private.xml
파일에 추가하여 외부 키보드와 MacBook의 내장 키보드 모두에서 원하는 동작을 얻을 수 있었습니다.
<root>
<item>
<name>F5 to Show Desktop (Fn+F5 is still F5)</name>
<appendix>Enables F5 (Shift+F5 on laptops) as a Show Desktop shortcut</appendix>
<identifier>private.f5_to_show_desktop</identifier>
<autogen>--KeyToKey-- KeyCode::F5, ModifierFlag::FN, KeyCode::F5</autogen>
<autogen>--KeyToKey-- ConsumerKeyCode::KEYBOARDLIGHT_LOW, ModifierFlag::FN, KeyCode::F5</autogen>
<autogen>--KeyToKey-- KeyCode::F5, KeyCode::MISSION_CONTROL, ModifierFlag::COMMAND_L, Option::NOREPEAT</autogen>
<autogen>--KeyToKey-- ConsumerKeyCode::KEYBOARDLIGHT_LOW, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_SHIFT, KeyCode::MISSION_CONTROL, ModifierFlag::COMMAND_L, Option::NOREPEAT</autogen>
</item>
<item>
<name>F6 to Show Dashboard (Fn+F6 is still F6)</name>
<appendix>Enables F6 (Shift+F6 on laptops) as a Show Dashboard shortcut</appendix>
<identifier>private.f6_to_show_dashboard</identifier>
<autogen>--KeyToKey-- KeyCode::F6, ModifierFlag::FN, KeyCode::F6</autogen>
<autogen>--KeyToKey-- ConsumerKeyCode::KEYBOARDLIGHT_HIGH, ModifierFlag::FN, KeyCode::F6</autogen>
<autogen>--KeyToKey-- KeyCode::F6, KeyCode::DASHBOARD, Option::NOREPEAT</autogen>
<autogen>--KeyToKey-- ConsumerKeyCode::KEYBOARDLIGHT_HIGH, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_SHIFT, KeyCode::DASHBOARD, Option::NOREPEAT</autogen>
</item>
</root>
private.xml
Karabiner 창의 "Misc & Uninstall" 탭에서 파일에 빠르게 접근할 수 있으며 " ReloadXML
Change Key" 탭에 버튼이 있습니다.