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 Name
Ve KeyboardLayout ID
özelliklerinin .keylayout
dosyanı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 AppleCurrentKeyboardLayoutInputSourceID
hala dizeyi döndürüyor "com.apple.keylayout.Dutch"
. Mevcut com.apple.keylayout
değ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
, AppleInputSourceHistory
ve 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! plist
Ayarları 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ış QWERTY
ve kimliğiyle 1337
( .keylayout
dosyada 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.