2010-08-10 20 views
17

Je n'utilise presque jamais les touches de fonction de mon macbook pro. Je les utilise principalement pour le volume, la luminosité, etc. Maintenant que j'ai commencé à jouer à Starcraft 2, je veux les utiliser sans avoir à appuyer sur la touche fn.Activer/Désactiver les touches Fn à partir de la ligne de commande sur le Mac

Je veux écrire un petit script shell qui va retourner la case à cocher "Utiliser toutes les touches F1, F2, etc. comme touches de fonction standard". Je pensais que je pourrais utiliser la commande defaults pour le changer mais je n'étais pas sûr des valeurs à utiliser. De cette façon, je n'ai pas besoin de changer les préférences chaque fois que je veux jouer. Je peux juste lancer le script qui va changer les clés et même lancer le jeu.

Des idées?

+0

Cette question est peut-être très ancienne, mais elle reste assez élevée dans les classements de recherche. Pour tous ceux qui le trouvent maintenant, il existe une application appelée Palua (http://www.molowa.com/mac-os-x/palua/palua-3-0/) qui fait basculer l'état pour vous, y compris intelligemment sur le commutateur d'application. Il y a aussi FunctionFlip (http://kevingessner.com/software/functionflip/) qui retourne de manière permanente juste un sous-ensemble des clés. – spikeheap

Répondre

3

La commande est defaults write -g com.apple.keyboard.fnState, bien que j'ai eu des problèmes dans le passé en la modifiant. J'ai fini par utiliser un AppleScript. Essaie.

defaults write -g com.apple.keyboard.fnState -boolean true 

Modifier
Pour élaborer, les problèmes que j'ai eu est que la valeur réelle est modifiée, mais elle ne change pas activement le paramètre dans les préférences système, ni ce que le bascule fnState, car le fichier est seulement lire au démarrage/connexion, etc .. Aussi, apporter des modifications à un fichier de configuration qui est ouvert par une autre tâche semble être un bon moyen de corrompre le fichier.

+0

Pour autant que je sache, la commande 'defaults' n'est pas la même chose que de simplement changer le fichier. J'ai l'impression qu'il est entré dans le mécanisme par défaut/préférences du système d'exploitation, qui devrait notifier toute application qui s'en soucie. –

+1

Tout comme la note ajoutée, je viens de tester cela sur Mavericks sans résultat fonctionnel. – Tango

8

Un AppleScript qui devrait faire l'affaire - prise de http://scriptbuilders.net/files/fn1.1.html, avec de légères modifications

--Check if GUI Scripting is Enabled 
tell application "System Events" 
    if not UI elements enabled then 
     set UI elements enabled to true 
    end if 
end tell 

--Enable/Disable "Use all F1, F2, etc. keys as standard function keys" option in Keyboard & Mouse Preference pane and close System Preferences 
tell application "System Events" 
    tell application "System Preferences" 
     reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard" 
    end tell 
    click checkbox 1 of tab group 1 of window 1 of application process "System Preferences" 
end tell 
if application "System Preferences" is running then 
    tell application "System Preferences" to quit 
end if 

testé sur Mac OS 10.6.4

+0

Cette solution _technically_ n'est pas une ligne de commande, car elle utilise AppleScript pour accéder aux éléments de l'interface graphique, laissant ainsi la ligne de commande. –

+1

Si vous voulez vraiment, vous pouvez l'exécuter sur la ligne de commande en utilisant 'osoft << EOF [coller le script ici] EOF' – user123444555621

+0

Juste comme note ajoutée, je viens de tester cela sur Mavericks et a reçu des messages d'erreur. Ça ne marchera pas sur Mavericks. – Tango

2

Vous pouvez installer le Keyremap4Macbook super. Sous Préférences Système -> Préférences du clavier, assurez-vous que «Utiliser toutes les touches F1, F2, etc. comme touches de fonction standard» est vérifié en tant qu'entité accessoire.

  • Ouvrez les préférences KeyRemap4MacBook.
  • Naviguez vers l'option "Pass Through Mode".
  • Cochez la case «Changer Fn + Échap pour basculer en mode de passage»
  • Ouvrez «Change F1..F19 Key» et cochez l'option «Macbook Pro» ou «Macbook Air» en choisissant votre type de mac correct.
+0

Il est également possible de basculer les paramètres avec quelque chose comme 'k =/Applications/KeyRemap4MacBook.app/Contents/Applications/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli; s = remap.functional2fn_2008; $ k changé | grep -q $ s && $ k désactive $ s || $ k active $ s'. Voir [Tests/lib/string/data/checkbox.xml] (https://raw.github.com/tekezo/KeyRemap4MacBook/master/Tests/lib/string/data/checkbox.xml) pour les identifiants des paramètres prédéfinis . – user495470