Ben sadece yardımcı olabilecek bir şeyle karşılaştım. İşte gidiyor:
$ 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;
}
);
}
Bu, benim özel klavye düzenimin (“QWERTY” olarak adlandırılır) varsayılan olduğu sistemimde. KeyboardLayout NameVe KeyboardLayout IDözelliklerinin .keylayoutdosyanın başındaki kimliğe ve ada başvurduğunu unutmayın .
Gördüğünüz gibi, defaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceIDhala dizeyi döndürüyor "com.apple.keylayout.Dutch". Mevcut com.apple.keylayoutdeğerlerin bir yerinde bir liste var mı ? Özel bir klavye düzeni için böyle bir değer elde etmek mümkün müdür? Çünkü bu durumda mülkü geçersiz kılabiliriz.
Ayrıca AppleEnabledInputSources, AppleInputSourceHistoryve AppleSelectedInputSourcesözellikleri tüm değerleri Kur Yardımcısı çalıştırırken Başlangıçta seçilen doğal OS X klavye düzenine karşılık olarak, özel klavye düzeni göz ardı etmek gibi görünüyor.
Başka bir güncelleme: Aha! plistAyarları kopyalayabileceğimiz başka bir dosya var gibi görünüyor .
$ 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;
};
}
Gördüğünüz gibi ( AppleCurrentKeyboardLayoutInputSourceID), görünüşe göre özel klavye düzenleri , klavye düzeninin adının ( dosyada belirtildiği gibi) "org.unknown.keylayout.FOO"olduğu gibi değerler alır .FOO.keylayout
Bu nedenle, tüm değerleri adlandırılmış QWERTYve kimliğiyle 1337( .keylayoutdosyada belirtilen ) özel klavye düzenimize ayarlamayı deneyelim :
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
Ne yazık ki, bu işe yaramıyor gibi görünüyor.
Güncelleme: @Lri güvenilir bir yöntem keşfetti - cevabına bakın.