fn-Modifikator wird für F-Tasten-Tastaturkürzel in Mavericks ignoriert

fn-Modifikator wird für F-Tasten-Tastaturkürzel in Mavericks ignoriert

Ich habe dies auf zwei Maschinen mit Mavericks (10.9.4) getestet, mit und ohne externe Tastatur, und in allen Fällen ist das Verhalten wie unten beschrieben.

UnterSystemeinstellungen > Tastatur > TastenkombinationenIm Abschnitt „Mission Control“ habe ich die Tastenkombination „Desktop anzeigen“ aktiviert und F5 zugewiesen. Ebenso habe ich „Dashboard anzeigen“ F6 zugewiesen.

Unabhängig davon, wie "Alle Tasten F1, F2 usw. als Standard-Funktionstasten verwenden" eingestellt ist,fnDie Taste wird für diese Tastenkombinationen ignoriert und die Tastenkombinationsaktionstetstritt auf, wodurch es unmöglich wird, F5 und F6 dazu zu bringen, „normal“ zu funktionieren (wie in Terminal.app). Es ist erwähnenswert, dass die „Standard“-Tastenkombinationen (z. B. F3 für Mission Control, F4 für LaunchPad)Tunarbeiten mitfnwie gewünscht/erwartet: Halten derfnModifikator beim Drücken dieser Tasten „kehrt“ das Verhalten um (je nachdem, wie die Option „Alle Tasten F1, F2 usw. verwenden“ eingestellt ist).

Ich habe "KeyRemap4MacBook" (jetzt genannt) installiertKarabiner) und aktivierte die Debug-Protokollierung für Tastaturereignisse mit:

sudo sysctl -w keyremap4macbook.debug=1

F5 ohnefnSchlüssel

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 mitfnSchlüssel

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

Und zum Vergleich...

F1 ohnefnSchlüssel

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 mitfnSchlüssel

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

Beachten Sie, dass mit F1, wenn diefnTaste (Tastencode 0x3F) gedrückt ist, ist der Tastencode 0x7A („F1“) statt 0x91 („BRIGHTNESS_DOWN“), aber für F5 bleibt die Taste 0x60 („F5“).

Es scheint, dass das, was auch immer die Tastaturkürzel-Voreinstellung verwaltet, keine Möglichkeit hat, den Status desfnModifikator.

Hier ist meine Frage: Gibt es eine Möglichkeit, Tastenkombinationen den Funktionstasten zuzuweisen, sodass sie wie die Standard-Systemtasten funktionieren und diefnTaste als Umschalter zwischen „normalem“ und „Shortcut“-Verhalten?

Antwort1

Dank vielerBeispielkonfigurationsdateienIn Karabiner(früher bekannt als KeyRemap4MacBook) konnte ich Folgendes finden und zu meiner private.xmlDatei hinzufügen, um sowohl auf einer externen Tastatur als auch auf der integrierten Tastatur eines MacBook das gewünschte Verhalten zu erzielen:

<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>

Beachten Sie, dass die private.xmlDatei über die Registerkarte „Verschiedenes und Deinstallieren“ des Karabiner-Fensters schnell zugänglich ist und dass sich ReloadXMLauf der Registerkarte „Schlüssel ändern“ eine Schaltfläche befindet.

verwandte Informationen