Ich schalte die Einstellung "Alle F1, F2 als Standardtasten verwenden" sehr oft um und möchte dies über ein Skript (oder eine Tastenkombination) automatisieren. Ist es möglich? Ich habe versucht, die richtigen Argumente für Google zu finden, defaults write ...
aber erfolglos.
Update: Am Ende habe ich https://github.com/jkbrzt/macos-fn-toggle basierend auf den Antworten hier erstellt.
Update II: Es gibt jetzt auch – https://github.com/Pyroh/Fluor – eine wirklich nette Menüleisten-App, mit der Sie das Verhalten der Fn-Tasten der Tastatur abhängig von der aktiven Anwendung automatisch ändern können.
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"
Sie könnten auch verwenden defaults write -g com.apple.keyboard.fnState -bool true
, aber ich kenne keine Möglichkeit, die Änderungen zu übernehmen, ohne sich ab- und wieder anzumelden.
Ich weiß nichts über Skripte, aber mit etwas praktischem Reverse-Engineering und Googeln habe ich dies gemacht, da mir das vorhandene AppleScript-GUI-Zeug, das da draußen war, nicht gefiel:
https://github.com/nelsonjchen/fntoggle
Kompilierte Binärdatei (in Ihren PATH werfen oder wenn Sie nicht wissen, was das ist /usr/local/bin/
: https://github.com/nelsonjchen/fntoggle/releases
Rufen Sie es von irgendetwas (ControlPlane, Automator sh
, usw.) auf, indem Sie fntoggle on
oder ausführen fntoggle off
.
Für dieses Skript muss kein GUI-Zugriff aktiviert sein. Es ist auch kein Aus- und Wiedereinloggen erforderlich.
Den aktuellen Stand können Sie nachfolgend ablesen. (1 für F-Tasten, 0 für Medien/Helligkeit usw.)
defaults read "Apple Global Domain" "com.apple.keyboard.fnState"
Sie können es schreiben, es ändert sich jedoch nicht, bis Sie neu starten. (Ich habe stattdessen versucht, Dock und Finder zu töten, kein Glück)
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
Ich vermute, dass jemand mit mehr Wissen darüber, was diese Plist-Datei liest, ein Skript schreiben könnte, um alles, was diese Plist liest, zu beenden und neu zu starten, wodurch die Änderung bestätigt werden sollte.
Eigentlich müssen Sie keine App mit Spotlight oder ähnlichem ausführen. Der beste Weg ist meiner Meinung nach:
Fügen Sie diesen Code aus dieser anderen Antwort ein :
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"
Als "Ihr Name" speichern
Scrollen Sie rechts ganz nach unten zu Allgemein und weisen Sie Ihrem Dienst einen eindeutigen Hotkey zu, ich wähle cmd+Shift+L
Das ist es! Es ist nicht sehr schnell oder so, aber Sie müssen keine App ausführen oder selbst zu den Einstellungen gehen.
Nachtrag: Bei EL Capitan funktioniert dies nur, wenn Automator im Fokus ist, ansonsten (zB wenn man das Skript über ein Tastenkürzel aufruft) kommt die Meldung "Bei der Aktion „AppleScript ausführen“ ist ein Fehler aufgetreten".
Etwas AppleScript, das helfen könnte: Applescript zum Umschalten der Tasten F1-F11 als Funktionstasten - MacRumors Forums
Ich habe eine (kostenlose) App geschrieben, die genau das tut, wonach Sie suchen. Sie können es direkt von http://www.techmasterdesign.com/fnswitch/ herunterladen .
Der Quellcode ist hier verfügbar: http://www.techmasterdesign.com/forum/viewtopic.php?f=2&t=668
Angesichts aller Antworten habe ich die folgende Lösung für Yosemite angewendet.
Mit Automator habe ich eine App mit folgendem Code erstellt:
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"
Speichern Sie es, fügen Sie es den Anwendungen hinzu. Um die Meldung „AppleScript Editor darf keinen unterstützenden Zugriff zuzulassen“ zu vermeiden, gehen Sie zu Systemeinstellungen->Sicherheit und Datenschutz->Datenschutz->Eingabehilfen und fügen Sie Ihre App hinzu.
Wenn Sie wie ich eine Verknüpfung wünschen, erstellen Sie in Automator ein neues Apple-Skript mit Launch App und wählen Sie Ihre App aus. Gehen Sie dann zurück zu Systemeinstellungen->Tastatur->Verknüpfungsregisterkarten->Diensteintrag und weisen Sie Ihrem Skript am Ende der Liste eine Verknüpfung zu.
Jakub Roztocil
mdwhatcott
Lri
Spyder
Benutzer69047
Tim Dearborn