
我已經在兩台運行 Mavericks (10.9.4) 的機器上測試了這一點,無論有沒有外部鍵盤,在所有情況下,行為如下所述。
在下面系統偏好設定 > 鍵盤 > 快速鍵在「任務控制」部分中,我啟用了「顯示桌面」捷徑並將其指派給 F5。同樣,我已將“顯示儀表板”指派給 F6。
無論「使用所有 F1、F2 等鍵作為標準功能鍵」如何設置,號這些快捷鍵和快捷鍵操作將忽略按鍵總是發生這種情況,導致 F5 和 F6 無法「正常」運作(例如在 Terminal.app 中)。值得注意的是「預設」快捷鍵(例如用於 Mission Control 的 F3、用於 LaunchPad 的 F4)做與...一起工作號根據需要/預期:持有號按下這些鍵時修改鍵會「翻轉」行為(取決於「使用所有 F1、F2 等鍵」選項的設定方式)。
我安裝了“KeyRemap4MacBook”(現在稱為卡拉賓納)並啟用鍵盤事件偵錯日誌記錄:
sudo sysctl -w keyremap4macbook.debug=1
F5 無號鑰匙
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 與號鑰匙
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 無號鑰匙
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
F1 與號鑰匙
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 時,號鍵(鍵代碼 0x3F)按下,鍵代碼為 0x7A(“F1”)而不是 0x91(“BRIGHTNESS_DOWN”),但對於 F5,鍵仍為 0x60(“F5”)。
似乎無論處理鍵盤快捷鍵 prefpane 都沒有辦法包含號修飾符。
所以這是我的問題:是否有某種方法可以將鍵盤快捷鍵分配給功能鍵,以便它們像預設系統快捷鍵一樣工作並遵循號鍵作為「正常」和「快速」行為之間的切換?
答案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>
請注意,可以從 Karabiner 視窗的「雜項和卸載」標籤快速存取該文件,並且「更改金鑰」標籤上private.xml
有一個按鈕。ReloadXML