Ich bin gerade auf etwas gestoßen, das helfen könnte. Hier geht:
$ 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;
}
);
}
Dies ist auf meinem System, wo mein benutzerdefiniertes Tastaturlayout (mit dem Namen "QWERTY") die Standardeinstellung ist. Beachten Sie, dass sich die Eigenschaften KeyboardLayout Nameund KeyboardLayout IDauf die ID und den Namen am Anfang der .keylayoutDatei beziehen .
Wie Sie sehen können, wird defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceIDimmer noch die Zeichenfolge zurückgegeben "com.apple.keylayout.Dutch". Gibt es irgendwo eine Liste der verfügbaren com.apple.keylayoutWerte? Ist es möglich, einen solchen Wert für ein benutzerdefiniertes Tastaturlayout zu erhalten? In diesem Fall könnten wir die Eigenschaft einfach überschreiben.
Auch die AppleEnabledInputSources, AppleInputSourceHistoryund AppleSelectedInputSourcesEigenschaften scheinen alle das benutzerdefinierte Tastaturlayout zu ignorieren, da ihre Werte auf das native OS X Tastaturlayout entsprechen ich ursprünglich ausgewählt , wenn Setup - Assistenten ausgeführt wird .
Noch ein Update: Aha! Es scheint, als gäbe es eine andere plistDatei, aus der wir möglicherweise die Einstellungen kopieren können.
$ 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;
};
}
Wie Sie sehen können ( AppleCurrentKeyboardLayoutInputSourceID), erhalten anscheinend benutzerdefinierte Tastaturlayouts Werte wie, "org.unknown.keylayout.FOO"wo FOOist der Name des Tastaturlayouts (wie in der .keylayoutDatei angegeben).
Versuchen wir also, alle Werte auf unser benutzerdefiniertes Tastaturlayout mit dem Namen QWERTYund der ID 1337(in der .keylayoutDatei angegeben) festzulegen :
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Leider scheint dies nicht zu funktionieren.
Update: @Lri hat eine zuverlässige Methode entdeckt - siehe seine Antwort.