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 Nameet KeyboardLayout IDfont référence à l'ID et au nom au début du .keylayoutfichier.
Comme vous pouvez le voir, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceIDrenvoie toujours la chaîne "com.apple.keylayout.Dutch". Y a-t-il une liste quelque part des com.apple.keylayoutvaleurs 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, AppleInputSourceHistoryet les AppleSelectedInputSourcesproprié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 plistfichier à 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ù FOOest le nom de la disposition de clavier (comme spécifié dans le .keylayoutfichier).
Donc, essayons de définir toutes les valeurs dans notre disposition de clavier personnalisée, nommée QWERTYet identifiée 1337(spécifiée dans le .keylayoutfichier):
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.