Acabo de encontrar algo que le podría ayudar. Aquí va:
$ 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;
}
);
}
Este es, en mi sistema, donde mi costumbre de diseño de teclado (denominado "QWERTY") es el valor predeterminado. Tenga en cuenta que el KeyboardLayout Name
y KeyboardLayout ID
propiedades se refieren a la identidad y el nombre en el inicio de la .keylayout
archivo.
Como se puede ver, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
todavía devuelve la cadena de caracteres "com.apple.keylayout.Dutch"
. Hay una lista en algún lugar de la disponible com.apple.keylayout
valores? Es posible obtener un valor para personalizar un diseño de teclado? Porque en ese caso, podríamos simplemente reemplazar la propiedad.
También, el AppleEnabledInputSources
, AppleInputSourceHistory
y AppleSelectedInputSources
propiedades todos parecen ignorar la costumbre de diseño de teclado, ya que sus valores se corresponden con el nativo de OS X de la distribución de teclado que originalmente seleccionado cuando ejecuta el Asistente de Configuración.
Otra actualización: Aha! Parece que hay otra plist
archivo desde el que podría ser capaz de copiar la configuración.
$ 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;
};
}
Como se puede ver (AppleCurrentKeyboardLayoutInputSourceID
), al parecer de teclado personalizados diseños de obtener valores como "org.unknown.keylayout.FOO"
donde FOO
es el nombre de la distribución del teclado (como se especifica en la .keylayout
archivo).
Así que, vamos a tratar de establecer todos los valores de nuestro sistema personalizado de diseño de teclado, de nombre QWERTY
y con ID 1337
(especificado en la .keylayout
archivo):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Lamentablemente, esto no parece funcionar.
Actualización: @Lri descubierto un método fiable - ver su respuesta.