38 votes

Basculer "Utiliser toutes les touches F1, F2 comme touches standard" via script.

Je bascule très souvent le paramètre "Utiliser toutes les touches F1, F2 comme touches standard" et j'aimerais l'automatiser via un script (ou un raccourci clavier). Est-ce possible ? J'ai essayé de chercher sur Google les bons arguments pour defaults write ... mais sans succès.

fn settings


Mise à jour : J'ai fini par créer https://github.com/jkbrzt/MacOS-fn-toggle en fonction des réponses données ici.

Mise à jour II : Il y a maintenant aussi - https://github.com/Pyroh/Fluor - une application de menubar vraiment sympa qui vous permet de modifier automatiquement le comportement des touches fn du clavier en fonction de l'application active.

29voto

Fuzzy Purple Monkey Points 702
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"

Vous pouvez également utiliser defaults write -g com.apple.keyboard.fnState -bool true mais je ne connais aucun moyen d'appliquer les changements sans se déconnecter et se reconnecter.

4 votes

J'ai emballé ce script comme une application en utilisant Automator afin qu'il puisse être rapidement exécuté à partir de Spotlight : github.com/jkbr/MacOS-fn-toggle

0 votes

@jkbr Votre application sur github est exactement le genre de chose que je recherchais. Je vous en remercie.

1 votes

Vous pouvez également enregistrer un script comme une application à partir de l'éditeur AppleScript. Il suffit de coller le script dans l'Éditeur AppleScript, d'appuyer sur S et de définir le format sur application.

11voto

Joe Points 536

Je ne connais pas le script mais avec un peu de rétro-ingénierie et de Google, j'ai créé ceci parce que je n'aimais pas l'interface graphique AppleScript existante :

https://github.com/nelsonjchen/fntoggle

Binaire compilé (à mettre dans votre PATH ou si vous ne savez pas ce que c'est, alors /usr/local/bin/ ) : https://github.com/nelsonjchen/fntoggle/releases

Appelez-le depuis n'importe quel endroit (ControlPlane, Automator, sh etc.) en exécutant fntoggle on ou fntoggle off .

Ce script ne nécessite pas que l'accessibilité de l'interface graphique soit activée. Il ne nécessite pas non plus de se déconnecter et de se reconnecter.

0 votes

Cela fonctionne-t-il encore dans Sierra ? Cela ne fonctionne pas ici.

0 votes

@WarrenP Cette question pourrait être éclairante. github.com/nelsonjchen/fntoggle/issues/4

0 votes

Merci ! Fonctionne sur Mojave 10.14.6

5voto

user2245192 Points 51

Vous pouvez lire l'état actuel avec ce qui suit. (1 pour les touches F, 0 pour les médias/la luminosité etc)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

Vous pouvez l'écrire, mais il ne sera pas modifié tant que vous n'aurez pas redémarré. (J'ai essayé de tuer Dock et Finder à la place, sans succès)

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

Je pense que quelqu'un avec plus de connaissances sur ce qui lit ce fichier plist pourrait écrire un script pour tuer et redémarrer ce qui lit ce plist, ce qui devrait lui faire reconnaître le changement.

0 votes

Merci, c'est la bonne clé. Cependant, le fait de la modifier directement ne semble pas changer le comportement.

0 votes

N'aide pas bien qu'il ait été redémarré

1voto

Teaman Points 11

En fait, vous n'avez pas besoin d'exécuter une application avec Spotlight ou quoi que ce soit, la meilleure façon à mon avis est de :

  1. Créer un nouveau service dans Automator

  2. Glissez : "Exécuter le script".

  3. Dans le "Service recieves selected" : choisir aucune entrée

  4. Collez ce code à partir de cette autre réponse :

    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" 
  5. Enregistrez sous "votre nom".

  6. Ouvrir les raccourcis clavier des préférences système

  7. Dans le menu de gauche, choisissez : "Services"

  8. Dans la partie droite, descendez jusqu'à l'onglet Général, et attribuez à votre service un raccourci unique, je choisis cmd+shift+L.

  9. C'est ça ! Ce n'est pas très rapide ou quoi que ce soit, mais vous n'avez pas besoin de lancer une application ou d'aller dans les préférences vous-même.

Addendum : Avec EL Capitan, cela ne fonctionne que lorsque Automator est en focus, sinon (par exemple, si vous invoquez le script via un raccourci clavier) vous obtenez le message "L'action "Run AppleScript" a rencontré une erreur".

0voto

0 votes

Bienvenue à Ask Different ! Vous avez posté ce message en tant que réponse, ce qui est réservé aux choses qui répondent directement à la question posée. Les réponses sur Ask Different doivent être plus qu'un simple lien. Vous pouvez inclure un lien, mais veuillez le résumer ou en faire un extrait dans votre réponse. L'idée est de faire en sorte que la réponse soit autonome. Veuillez jeter un coup d'œil à la FAQs pour plus d'informations. Merci.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X