16 votes

Comment modifier les raccourcis de Mission Control à partir de la ligne de commande ?

J'ai essayé de comprendre cela pendant longtemps. J'ai un script de provisionnement Mac OS assez typique :

https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1

Je voudrais changer les raccourcis de la commande Mission pour qu'ils soient tous Ctrl + Alt + ... au lieu de Ctrl + ... . Par exemple, la valeur par défaut est : Ctrl + Up pour activer le contrôle de mission. Je voudrais changer cela en Ctrl + Alt + Up parce que le raccourci actuel entre en conflit avec d'autres programmes que j'utilise.

Notez que je suis déjà au courant de la façon de procéder par le biais de System Preferences > Keyboard > Shortcuts Je suis à la recherche d'une solution scriptable, en ligne de commande.

EDIT : Grâce à @user3439894 j'ai parcouru et fait un script pour changer toutes les clés plist à ce que je veux qu'elles soient. Le seul problème est qu'il ne fonctionne pas :-(

Voici ce que j'ai jusqu'à présent :

#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys

0 votes

Avez-vous trouvé une solution à ce problème ?

0 votes

@Nathan, non. Je me contente maintenant des valeurs par défaut.

0 votes

J'ai eu un problème similaire. Vous pouvez peut-être essayer ma solution : apple.stackexchange.com/questions/344494/

6voto

user3439894 Points 52496

Il ne s'agit pas d'une réponse directe, mais j'espère que les informations présentées ici vous aideront à trouver une réponse directe.

Je peux vous dire ce qui change dans quel fichier lorsque vous modifiez le raccourci clavier par défaut pour Mission Control de Control-Up Arrow à Control-Option-Up Arrow. Il s'agit du "numéro d'élément 2" du tableau "paramètres" dans le dictionnaire "valeur" du dictionnaire "32" et "34" du dictionnaire "AppleSymbolicHotKeys" dans le fichier "AppleSymbolicHotKeys". /Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plist archivo.

Voici un defaults read représentation de la com.apple.symbolichotkeys.plist en ce qui concerne les modifications apportées dans les circonstances définies ci-dessus.

Mission Control avec le défaut de Control-Up Arrow

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2359296
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2490368
                );
                type = standard;
            };
        };
    };
}

Le contrôle de mission a été changé en contrôle-option-flèche haute.

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2883584
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    3014656
                );
                type = standard;
            };
        };
    };
}

Le site BUGS de la section defaults La page de manuel dit :

Les valeurs par défaut peuvent être structurées de manière très complexe, ce qui rend difficile pour l'utilisateur de les saisir avec cette méthode. difficile pour l'utilisateur de les saisir avec cette commande.

Et ceci est un exemple parfait car il s'agira d'une ligne de commande très complexe utilisant defaults pour écrire les valeurs cibles dans les éléments du tableau cible, si c'est faisable. Juste pour info... Si vous essayez de faire un defaults write com.apple.symbolichotkeys ... assurez-vous d'avoir d'abord sauvegardé le fichier cible.

L'autre option est d'utiliser un AppleScript pour changer les paramètres en naviguant dans l'interface graphique des préférences système et cela aussi sera un peu complexe par rapport au réglage d'un objet de niveau supérieur, ce qui n'est pas le cas ici. Je ne suis même pas sûr que ce soit faisable, mais si j'avais besoin d'une méthode automatisée, je la trouverais, mais je n'ai pas le temps de trouver l'une ou l'autre méthode, désolé.

Au moins, vous savez maintenant ce qui change et où, et à partir de là, vous pourrez soit vous débrouiller tout seul, soit obtenir de l'aide supplémentaire pour en savoir un peu plus.

Voici une image coupée dans Xcode de l'image de l'utilisateur. com.apple.symbolichotkeys.plist archivo.

enter image description here

J'ai tracé les modifications à l'aide d'un utilitaire tiers qui enregistre les modifications du système de fichiers, puis convertit ces informations en une sortie plus lisible pour l'homme afin de fournir ces informations.

0 votes

Il semble modifier les fichiers plist appropriés, mais le seul problème est que les raccourcis ne changent pas réellement, pas après un redémarrage, une relecture du fichier ou autre.

0 votes

Quel est le nom de cet "utilitaire tiers qui enregistre les modifications du système de fichiers et convertit ensuite ces informations en une sortie plus lisible pour l'homme" ?

1 votes

@Allen Bargi, IIRC C'était probablement filemon qui faisait partie des extras du livre "Mac OS X Internals - To The Apple's Core" sous la forme de code source filemon.c que j'ai compilé en un exécutable sur mon système. J'ai ensuite comparé les différences entre le fichier modifié de son état actuel et le fichier d'une sauvegarde Time Machine effectuée juste avant les modifications. Vous pouvez également utiliser la fonction native fs_usage commandement.

0voto

notablytipsy Points 2787

C'est ma recommandation : utiliser un utilitaire tel que Mousqueton pour permettre une telle personnalisation.

En tant que développeur, je tiens à dire que je trouve personnellement que c'est une question fascinante et alléchante, et qu'elle met vraiment en évidence le côté le plus laid et le plus sombre de MacOS qui se cache dans les coulisses et que seuls les développeurs de logiciels et les hackers peuvent vraiment apprécier...

Le problème est assez simple : Je veux juste remapper la combinaison de touches par défaut à ma propre combinaison.

Pourquoi diable est-ce si difficile/compliqué ? J'ai l'intention de le découvrir et de poster une solution... Restez à l'écoute.

0 votes

Merci, j'ai hâte de voir ce que vous allez découvrir. Mais télécharger un programme externe prend autant de temps que de les paramétrer via les interfaces standards du Mac, j'espère toujours une solution intégrée en ligne de commande.

0voto

Hevel Harpi Points 11

J'essayais de faire la même chose et je suis tombé sur plutil . J'ai réussi à désactiver les commandes ^ et ^ (pour la commutation des espaces) en utilisant ce qui suit :

plutil -replace AppleSymbolicHotKeys.79.enabled -bool NO ~/Library/Preferences/com.apple.symbolichotkeys.plist
plutil -replace AppleSymbolicHotKeys.80.enabled -bool NO ~/Library/Preferences/com.apple.symbolichotkeys.plist
plutil -replace AppleSymbolicHotKeys.81.enabled -bool NO ~/Library/Preferences/com.apple.symbolichotkeys.plist
plutil -replace AppleSymbolicHotKeys.82.enabled -bool NO ~/Library/Preferences/com.apple.symbolichotkeys.plist

Un peu de bricolage et il serait probablement assez simple de modifier cela pour changer les liaisons de touches plutôt que de les défaire.

Je n'ai pas trouvé le moyen de les appliquer sans redémarrage.

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