Ho appena trovato qualcosa che potrebbe aiutare. Ecco qui:
$ 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;
}
);
}
Questo è sul mio sistema, dove il mio layout di tastiera personalizzato (chiamato "QWERTY") è l'impostazione predefinita. Si noti che le proprietà KeyboardLayout Name
e si KeyboardLayout ID
riferiscono all'ID e al nome all'inizio del .keylayout
file.
Come puoi vedere, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
restituisce comunque la stringa "com.apple.keylayout.Dutch"
. C'è un elenco da qualche parte dei com.apple.keylayout
valori disponibili ? È possibile ottenere un valore simile per un layout di tastiera personalizzato? Perché in quel caso, potremmo semplicemente ignorare la proprietà.
Inoltre, i AppleEnabledInputSources
, AppleInputSourceHistory
e AppleSelectedInputSources
le proprietà tutti sembrano ignorare il layout di tastiera personalizzata, come i loro valori corrispondono al layout di tastiera OS X nativo Originariamente ho selezionato durante l'esecuzione Setup Assistant.
Un altro aggiornamento: Aha! Sembra che ci sia un altro plist
file da cui potremmo essere in grado di copiare le impostazioni.
$ 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;
};
}
Come puoi vedere ( AppleCurrentKeyboardLayoutInputSourceID
), i layout di tastiera apparentemente personalizzati ottengono valori come "org.unknown.keylayout.FOO"
dove si FOO
trova il nome del layout di tastiera (come specificato nel .keylayout
file).
Quindi, per provare a impostare tutti i valori sul nostro layout di tastiera personalizzato, denominato QWERTY
e con ID 1337
(specificato nel .keylayout
file):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Purtroppo, questo non sembra funzionare.
Aggiornamento: @Lri ha scoperto un metodo affidabile - vedi la sua risposta.