Versuchen Sie, FunctionFlip mit BetterTouchTool zu kombinieren :
- Stellen Sie die gewünschten Tasten mit FunctionFlip ein
- Richten Sie anwendungsspezifische Schlüssel mit BetterTouchTool ein
Auf meinem MacBook habe ich alle Tasten F1 F2 usw. als Standardfunktionstasten Option deaktiviert. Ich verwende FunctionFlip, um F3 von Expose zu Spaces abzubilden.
Ich möchte jedoch Funktionstasten als echte Funktionstasten verwenden, wenn ich in einer virtualisierten Umgebung wie VirtualBox oder VMware Fusion arbeite. Das Wechseln zu System> Einstellungen ist nicht sehr praktisch.
Haben Sie jetzt, wie Sie überprüfen Verwendung alle F1 F2 usw. Tasten als Standardfunktionstasten nur, wenn eine bestimmte Anwendung ist anwesend ?
Versuchen Sie, FunctionFlip mit BetterTouchTool zu kombinieren :
Schnappen IronAHK und verwenden Sie es neu zuordnen alle Schlüssel anstelle der Systemeinstellungen (Grund dafür ist, dass es mit dem System in Konflikt geraten könnte -> Einstellungen), kommt es mit einer Make - Datei für leicht unter Mono zu kompilieren.
Dann verwenden Sie es genau wie AutoHotkey:
#IfWinActive,,VirtualBox F1::Send { F1 }
Eine Alternative zu Palua ist KeyRemap4MacBook :
<?xml version="1.0"?> <root> <appdef> <appname>FKEYS</appname> <equal>com.vmware.fusion</equal> <equal>org.virtualbox.app.VirtualBoxVM</equal> </appdef> <item> <name>fkeys</name> <identifier>fkeys</identifier> <only>FKEYS</only> <autogen>__KeyToKey__ KeyCode::BRIGHTNESS_DOWN, KeyCode::F1</autogen> <autogen>__KeyToKey__ KeyCode::BRIGHTNESS_UP, KeyCode::F2</autogen> <autogen>__KeyToKey__ KeyCode::EXPOSE_ALL, KeyCode::F3</autogen> <autogen>__KeyToKey__ KeyCode::LAUNCHPAD, KeyCode::F4</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::KEYBOARDLIGHT_LOW, KeyCode::F5</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::KEYBOARDLIGHT_HIGH, KeyCode::F6</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_PREV, KeyCode::F7</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_PLAY, KeyCode::F8</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::MUSIC_NEXT, KeyCode::F9</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_MUTE, KeyCode::F10</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_DOWN, KeyCode::F11</autogen> <autogen>__ConsumerToKey__ ConsumerKeyCode::VOLUME_UP, KeyCode::F12</autogen> <autogen>__KeyToKey__ KeyCode::F1, KeyCode::BRIGHTNESS_DOWN</autogen> <autogen>__KeyToKey__ KeyCode::F2, KeyCode::BRIGHTNESS_UP</autogen> <autogen>__KeyToKey__ KeyCode::F3, KeyCode::EXPOSE_ALL</autogen> <autogen>__KeyToKey__ KeyCode::F4, KeyCode::LAUNCHPAD</autogen> <autogen>__ConsumerToKey__ KeyCode::F5, ConsumerKeyCode::KEYBOARDLIGHT_LOW</autogen> <autogen>__ConsumerToKey__ KeyCode::F6, ConsumerKeyCode::KEYBOARDLIGHT_HIGH</autogen> <autogen>__ConsumerToKey__ KeyCode::F7, ConsumerKeyCode::MUSIC_PREV</autogen> <autogen>__ConsumerToKey__ KeyCode::F8, ConsumerKeyCode::MUSIC_PLAY</autogen> <autogen>__ConsumerToKey__ KeyCode::F9, ConsumerKeyCode::MUSIC_NEXT</autogen> <autogen>__ConsumerToKey__ KeyCode::F10, ConsumerKeyCode::VOLUME_MUTE</autogen> <autogen>__ConsumerToKey__ KeyCode::F11, ConsumerKeyCode::VOLUME_DOWN</autogen> <autogen>__ConsumerToKey__ KeyCode::F12, ConsumerKeyCode::VOLUME_UP</autogen> </item> </root>
In der Quelle finden Sie die Schlüsselcodewerte und vordefinierten Einstellungen .
Leider bietet Apple oder FunctionFlip keine Option .
Der Autor von FunctionFlip war jedoch offensichtlich in der Lage, Code zu schreiben, der eine dynamische Konfiguration der Funktionstasten ermöglicht, so dass dies möglich ist.
Ich würde den Autor von FunctionFlip kontaktieren und fragen, ob er die benötigten Funktionen hinzufügen könnte. Steuern des Funktionstastenverhaltens abhängig von der aktiven Anwendung.
Wenn Sie sich dazu verpflichten, für die Funktion zu spenden, wird sie möglicherweise schneller implementiert.
Ansonsten kenne ich keine anderen Programme, die diese Funktionalität bieten.
Sie können AppleScript verwenden, um den Status der Funktionstasten umzuschalten:
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"
Darüber hinaus können Sie diese App mithilfe von Keyboard Maestro spezifisch gestalten . Wenn ein kleines Tutorial geschrieben wird, wie man das hier herausholt .
Verwenden Sie Karabiner
Diese Anwendung kann genau die Funktionalität bereitstellen, nach der das OP gefragt hat. Die Antwort von user495470 über KeyRemap4MacBook war hilfreich, um mich in die richtige Richtung zu weisen. Es ist jedoch veraltet und funktioniert nicht mehr wie geschrieben, da KeyRemap4MacBook aktualisiert wurde. Es heißt jetzt Karabiner . Es scheint gut gepflegt zu sein und ist kostenlose Open-Source-Software (nicht der Fall bei BetterTouchTool, das in einer anderen Antwort erwähnt wird, die nach 45 Tagen zu zahlen ist).
Einrichten
Laden Sie zuerst die Karabiner-Anwendung herunter und installieren Sie sie. Nach der Installation müssen Sie, um die Funktionstasten als Standardfunktionstasten neu zuzuordnen, eine "Complex-Modification" in den Voreinstellungen hinzufügen. Es gibt mehrere dieser komplexen Modifikationen, die von der Karabiner-Website vorgefertigt und heruntergeladen werden können. Sie können jedoch auch eigene in json schreiben.
Verwenden Sie den folgenden Code, und platzieren Sie ihn in dem ~/.config/karabiner/assets/complex_modifications
Ordner in einer Datei (genannt "functionkeys.json") . Sobald es dort ist, gehen Sie zu den Karabiner-Einstellungen und klicken Sie auf Complex-Modifications
, dann auf Add rule
. Sie sollten den Text sehen Function Keys in Terminal Apps
und dort klicken Enable All
.
Wie ändert man, welche Vordergrundanwendung den Effekt verursacht?
Dieser Code stellt insbesondere die Funktionstasten-Standardfunktionalität bereit, wenn eine von mehreren Terminal-Apps verwendet wird (und nichts, wenn eine andere App verwendet wird). Dieser Code ermöglicht auch die Verwendung von Medienschlüsseln in Terminal-Apps fn + function key
.
Während das OP nach einer generischen spezifischen Anwendung fragte, wurde insbesondere die VirtualBox erwähnt. Der folgende Code könnte geändert werden, um die Funktionstastenfunktionalität in den gewünschten Anwendungen zu erstellen, indem der Inhalt jeder Instanz "Bundle Identifiers: [ ... ]"
durch beliebige Anwendungen ersetzt wird. (Möglicherweise habe "^org\\.virtualbox\\.VirtualBoxVM"
ich VirtualBox noch nicht ausprobiert.) Verwenden Sie den mitgelieferten Karabiner EventViewer, um die Anwendungskennung für jede gewünschte Anwendung zu finden, und fügen Sie dann die Werte ein.
{ "title": "Function Keys in Terminal Apps", "rules": [ { "description": "Use regular function keys in terminal", "manipulators": [ { "type": "basic", "from": { "key_code": "f1" }, "to": [ { "key_code": "f1", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f2" }, "to": [ { "key_code": "f2", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f3" }, "to": [ { "key_code": "f3", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f4" }, "to": [ { "key_code": "f4", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f5" }, "to": [ { "key_code": "f5", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f6" }, "to": [ { "key_code": "f6", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f7" }, "to": [ { "key_code": "f7", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f8" }, "to": [ { "key_code": "f8", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f9" }, "to": [ { "key_code": "f9", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f10" }, "to": [ { "key_code": "f10", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f11" }, "to": [ { "key_code": "f11", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f12" }, "to": [ { "key_code": "f12", "modifiers": [ "fn" ] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f1", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f1" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f2", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f2" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f3", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f3" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f4", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f4" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f5", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f5" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f6", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f6" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f7", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f7" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f8", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f8" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f9", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f9" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f10", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f10" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f11", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f11" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] }, { "type": "basic", "from": { "key_code": "f12", "modifiers": { "mandatory": [ "fn" ] } }, "to": [ { "key_code": "f12" } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^com\\.googlecode\\.iterm2$", "^co\\.zeit\\.hyperterm$", "^co\\.zeit\\.hyper$", "^io\\.alacritty$", "^net\\.kovidgoyal\\.kitty$" ] } ] } ] } ] }