Je viens de tomber sur quelque chose qui pourrait aider. Voici:
$ defaults read /Library/Preferences/com.apple.HIToolbox.plist
{
AppleCurrentKeyboardLayoutInputSourceID = "com.apple.keylayout.Dutch";
AppleDefaultAsciiInputSource = {
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
};
AppleEnabledInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleInputSourceHistory = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleSelectedInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
}
C'est sur mon système, où ma disposition de clavier personnalisée (nommée "QWERTY") est la valeur par défaut. Notez que les propriétés KeyboardLayout Name
et KeyboardLayout ID
font référence à l'ID et au nom au début du .keylayout
fichier.
Comme vous pouvez le voir, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
renvoie toujours la chaîne "com.apple.keylayout.Dutch"
. Y a-t-il une liste quelque part des com.apple.keylayout
valeurs disponibles ? Est-il possible d'obtenir une telle valeur pour une disposition de clavier personnalisée? Parce que dans ce cas, nous pourrions simplement remplacer la propriété.
En outre, les AppleEnabledInputSources
, AppleInputSourceHistory
et les AppleSelectedInputSources
propriétés tous semblent ignorer la disposition du clavier personnalisé, que leurs valeurs correspondent à la disposition du clavier natif OS X I sélectionné à l' origine lors de l' exécution assistant d'installation.
Une autre mise à jour: Aha! Il semble qu'il y ait un autre plist
fichier à partir duquel nous pourrions être en mesure de copier les paramètres.
$ defaults read ~/Library/Preferences/ByHost/com.apple.HIToolbox.*.plist
{
AppleCurrentKeyboardLayoutInputSourceID = "org.unknown.keylayout.QWERTY";
AppleDateResID = {
smRoman = 2;
};
AppleEnabledInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
},
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
"Bundle ID" = "com.apple.CharacterPaletteIM";
InputSourceKind = "Non Keyboard Input Method";
},
{
"Bundle ID" = "com.apple.KeyboardViewer";
InputSourceKind = "Non Keyboard Input Method";
},
{
"Bundle ID" = "com.apple.inputmethod.ironwood";
InputSourceKind = "Non Keyboard Input Method";
}
);
AppleGlobalTextInputProperties = {
TextInputGlobalPropertyPerContextInput = 0;
};
AppleInputSourceHistory = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 26;
"KeyboardLayout Name" = Dutch;
}
);
AppleNumberResID = {
smRoman = 2;
};
AppleSelectedInputSources = (
{
InputSourceKind = "Keyboard Layout";
"KeyboardLayout ID" = 1337;
"KeyboardLayout Name" = QWERTY;
},
{
"Bundle ID" = "com.apple.inputmethod.ironwood";
InputSourceKind = "Non Keyboard Input Method";
}
);
AppleTimeResID = {
smRoman = 2;
};
}
Comme vous pouvez le voir ( AppleCurrentKeyboardLayoutInputSourceID
), les dispositions de clavier apparemment personnalisées obtiennent des valeurs telles que "org.unknown.keylayout.FOO"
où FOO
est le nom de la disposition de clavier (comme spécifié dans le .keylayout
fichier).
Donc, essayons de définir toutes les valeurs dans notre disposition de clavier personnalisée, nommée QWERTY
et identifiée 1337
(spécifiée dans le .keylayout
fichier):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Malheureusement, cela ne semble pas fonctionner.
Mise à jour: @Lri a découvert une méthode fiable - voir sa réponse.