ฉันเพิ่งเจอบางสิ่งที่อาจช่วยได้ ไปที่นี่:
$ 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;
}
);
}
นี่คือระบบของฉันซึ่งรูปแบบแป้นพิมพ์แบบกำหนดเองของฉัน (ชื่อ“ QWERTY”) เป็นค่าเริ่มต้น โปรดทราบว่าKeyboardLayout Name
และKeyboardLayout ID
คุณสมบัติอ้างถึง ID และชื่อที่จุดเริ่มต้นของ.keylayout
ไฟล์
ในขณะที่คุณสามารถดูยังคงส่งกลับสตริงdefaults read /Library/Preferences/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID
"com.apple.keylayout.Dutch"
มีรายการบางส่วนของcom.apple.keylayout
ค่าที่ใช้ได้หรือไม่? เป็นไปได้หรือไม่ที่จะได้รับค่าดังกล่าวสำหรับรูปแบบแป้นพิมพ์แบบกำหนดเอง? 'ในกรณีนี้เราสามารถแทนที่คุณสมบัติได้
นอกจากนี้AppleEnabledInputSources
, AppleInputSourceHistory
และAppleSelectedInputSources
คุณสมบัติทั้งหมดดูเหมือนจะไม่สนใจรูปแบบแป้นพิมพ์ที่กำหนดเองเป็นค่าของพวกเขาสอดคล้องกับแป้นพิมพ์ OS X พื้นเมือง layout ฉันเลือกเดิมเมื่อทำงาน Setup Assistant
การอัปเดตอื่น:อ๊ะ! ดูเหมือนว่ามีplist
ไฟล์อื่นที่เราอาจคัดลอกการตั้งค่าได้
$ 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;
};
}
ตามที่คุณเห็น ( AppleCurrentKeyboardLayoutInputSourceID
) รูปแบบแป้นพิมพ์แบบกำหนดเองที่ชัดเจนจะได้รับค่าเหมือน"org.unknown.keylayout.FOO"
ที่FOO
เป็นชื่อของรูปแบบแป้นพิมพ์ (ตามที่ระบุใน.keylayout
ไฟล์)
ดังนั้นเพื่อลองตั้งค่าทั้งหมดเป็นรูปแบบแป้นพิมพ์ที่กำหนดเองของเราชื่อQWERTY
และมี ID 1337
(ระบุไว้ใน.keylayout
ไฟล์):
sudo defaults write /Library/Preferences/ByHost/com.apple.HIToolbox.plist AppleCurrentKeyboardLayoutInputSourceID -string "org.unknown.keylayout.QWERTY"
น่าเศร้าที่ดูเหมือนว่าจะไม่ทำงาน
ปรับปรุง: @Lri ค้นพบวิธีการที่เชื่อถือได้ - ดูคำตอบของเขา