สร้างเค้าโครงแป้นพิมพ์แบบกำหนดเองตามค่าเริ่มต้นของระบบ - แม้กระทั่งสำหรับหน้าจอเข้าสู่ระบบ


37

ฉันสามารถสร้างรูปแบบแป้นพิมพ์แบบกำหนดเอง ( แบบที่ไม่มีใน OS X เป็นค่าเริ่มต้น) เป็นค่าเริ่มต้นของระบบ - แม้สำหรับหน้าจอเข้าสู่ระบบได้หรือไม่


(ในขณะเดียวกันคุณสามารถยอมรับคำตอบได้เพราะผู้อ่านอาจสับสน)
o0 '

1
@Lohoris: เสร็จแล้ว!
Mathias Bynens

โปรดอัปเดตคำถาม b การลบบันทึกย่อการปรับปรุงคำตอบที่ดีที่สุดตอนนี้ใช้ได้กับเวอร์ชันล่าสุดของ osx เช่นกัน
Bert Goethals

คำตอบ:


13

สิ่งนี้ใช้ได้กับ OSX 10.9 Mavericks ด้วยรูปแบบแป้นพิมพ์ที่ฉันสร้างขึ้นด้วย Ukulele สมมติว่าคุณได้ติดตั้งเลย์เอาต์ในระบบของคุณแล้วให้ลงชื่อเข้าใช้บัญชีของคุณและทำให้เค้าโครงแป้นพิมพ์แบบกำหนดเองของคุณใช้งานได้

เปิดเทอร์มินัลและเรียกใช้คำสั่งต่อไปนี้:

cp /Library/Preferences/com.apple.HIToolbox.plist /tmp/

หากคุณตั้งใจจะใช้โปรแกรมแก้ไขข้อความ (เช่น TextWrangler) เพื่อทำการเปลี่ยนแปลงนี้แทน XCode (ซึ่งมีโปรแกรมแก้ไขภาพกราฟิกแบบเพลทแบบพิเศษ) ให้เรียกใช้ :

plutil -convert xml1 /tmp/com.apple.HIToolbox.plist

ตอนนี้เปิด/tmp/com.apple.HIToolbox.plistใน text editor หรือใน XCode

ตลอดทั้งไฟล์คุณจะพบว่ามีการกล่าวถึงKeyboardLayout IDคีย์จำนวนหนึ่งตามด้วยจำนวนเต็มและKeyboardLayout Nameตามด้วยสตริง เปลี่ยนสายเหล่านี้เพื่อให้ชื่อของรูปแบบแป้นพิมพ์ของคุณเองและเลขประจำตัวประชาชนเพื่อประชาชนของรูปแบบของคุณ ~/Library/Preferences/com.apple.HIToolbox.plist(วิธีที่ง่ายที่สุดที่จะหาค่าที่เหมาะสมคือการเปรียบเทียบกับการตั้งค่าผู้ใช้ของคุณพบในไฟล์

นอกจากนี้ยังAppleCurrentKeyboardLayoutInputSourceIDต้องเปลี่ยนค่าของคีย์ตามด้วย (อาจจะเป็นสิ่งที่ต้องการorg.unknown.keylayout.NameOfYourLayout) คุณสามารถหาค่านี้ได้อีกครั้งในไฟล์การตั้งค่าท้องถิ่นของคุณ

เมื่อการเปลี่ยนแปลงเหล่านี้เสร็จสิ้นให้บันทึกไฟล์และกลับไปที่เทอร์มินัล หากต้องการเล่นอย่างปลอดภัยคุณสามารถสร้างสำเนาของcom.apple.HIToolbox.plistไฟล์ต้นฉบับได้ในกรณีที่คุณทำผิดพลาดและจำเป็นต้องย้อนกลับ ตัวอย่างเช่นในการบันทึกสำเนาในโฟลเดอร์เอกสารของคุณ:

sudo cp /Library/Preferences/com.apple.HIToolbox.plist ~/Documents

จากนั้นติดตั้งการเปลี่ยนแปลงของคุณด้วยสิ่งต่อไปนี้:

sudo sh -c 'cat /tmp/com.apple.HIToolbox.plist > /Library/Preferences/com.apple.HIToolbox.plist'

(ไม่จำเป็นต้องแปลงไฟล์ของคุณกลับมาจากรูปแบบข้อความด้วยplutilหากคุณเคยทำมาก่อน)

ออกจากเทอร์มินัลแล้วรีสตาร์ทคอมพิวเตอร์ (ออกจากระบบไม่เพียงพอ: ไฟล์จะไม่อ่านซ้ำ) หลังจากรีสตาร์ทคุณควรมีรูปแบบแป้นพิมพ์ของคุณในหน้าจอเข้าสู่ระบบ

หมายเหตุ: เป็นไปได้ว่ามันจะเพียงพอที่จะคัดลอกไฟล์com.apple.HIToolbox.plistจาก~/Library/Preferences/ไปยัง/Library/Preferences/อย่างไรก็ตามในกรณีของฉันมีรายการเพิ่มเติมดังนั้นฉันตัดสินใจที่จะเล่นอย่างปลอดภัยและเพิ่งแก้ไขไฟล์ที่มีอยู่


ลองใช้ตอนนี้เนื่องจากคำตอบอื่น ๆ ใช้งานไม่ได้ FWIW นี่คือสิ่งที่com.apple.HIToolbox.plistไฟล์ของฉันดูเหมือนหลังจากการเปลี่ยนแปลง: gist.github.com/anonymous/d18bae208b5cf12e48be
Mathias Bynens

ทำงานไร้ที่ติขอบคุณ! ฉันขอโทษฉันไม่สามารถมอบรางวัลให้คุณได้อีกดังนั้นฉันจะตั้งค่าใหม่เพียงเพื่อตอบแทนคุณสำหรับคำตอบนี้
Mathias Bynens

ดีใจที่มันช่วย ขอบคุณสำหรับเงินพิเศษ! :-)
Eric J. Francois

ทำงานเหมือนจับใจ สุดยอดเคล็ดลับ!
ƘɌỈSƬƠƑ

มันยอดเยี่ยมมาก ฉันจมอยู่ใต้แป้นพิมพ์ภาษาเบลเยียมเป็นค่าเริ่มต้นเป็นเวลานาน! ฉันหวังว่าฉันจะให้คะแนนคุณได้หลายครั้ง!
Bert Goethals

12

ฉันพบเคล็ดลับ MacWorld เก่านี้ซึ่งแนะนำให้เรียกใช้ Setup Assistant อีกครั้ง:

sudo /System/Library/CoreServices/Setup Assistant.app\
/Contents/MacOS/Setup Assistant

ตอนแรกฉันคิดว่าสิ่งนี้ไม่ได้รับการสนับสนุนใน Lion อีกต่อไปเนื่องจากการเรียกใช้คำสั่งนี้ดูเหมือนจะไม่มีผลใด ๆ หลังจากโพสต์คำถามนี้ฉันสังเกตเห็นว่ามีการพิมพ์ผิดในคำสั่ง อักขระช่องว่างต้องมีการหลบหนีอย่างถูกต้องหรือต้องระบุตำแหน่งของไบนารี ด้วยเหตุนี้เคล็ดลับที่ฉันเชื่อมโยงกับใช้งานไม่ได้

นี่คือคำสั่งที่ถูกต้อง:

sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

หรือจะใช้วิธีนี้ก็ได้เช่นกัน:

sudo /System/Library/CoreServices/Setup\ Assistant.app/Contents/MacOS/Setup\ Assistant

gotcha อีกอันที่ไม่ได้กล่าวถึงในหน้าที่ฉันเชื่อมโยง: เค้าโครงแป้นพิมพ์แบบกำหนดเองจะต้องติดตั้งใน/Library/Keyboard Layouts/(เช่นcd /Library/Keyboard\ Layouts) ไม่ใช่~/Library/Keyboard Layoutsเพื่อให้ปรากฏในหน้าจอการเลือกรูปแบบแป้นพิมพ์ของ Setup Assistant


อัปเดต: ตั้งแต่ OS X 10.8 คุณจะต้องเรียกใช้คำสั่งพิเศษ (เช่นลบไฟล์ก่อน):

sudo rm /var/db/.AppleSetupDone; sudo "/System/Library/CoreServices/Setup Assistant.app/Contents/MacOS/Setup Assistant"

นอกจากนี้คุณจะต้องสร้างบัญชีผู้ใช้ใหม่เพื่อให้การติดตั้งเสร็จสมบูรณ์ - แต่ไม่ต้องกังวลคุณสามารถลบบัญชีใหม่ได้ในภายหลัง

เคล็ดลับนี้ไม่ทำงานอีกต่อไปใน OS X 10.8 รุ่นล่าสุด


ปรับปรุง: นี่คือทุกอย่างที่ฉันรู้เกี่ยวกับรูปแบบแป้นพิมพ์ที่กำหนดเองบน OS X


ฉันทำตามขั้นตอนของคุณสำหรับ Mountain Lion 10.8 และวิ่งไปยังผู้ช่วยตั้งค่าได้ตั้งค่าเค้าโครงแป้นพิมพ์เริ่มต้นของฉันเป็น Dvorak และพยายามเข้าสู่ระบบ แต่มันไม่ทำงาน เมื่อรีบูตเครื่องยังคงใช้ qwerty สำหรับหน้าจอเข้าสู่ระบบ
am

ใช่มันดูเหมือนจะไม่ทำงานอีกต่อไปตั้งแต่ OS X 10.8 :(
Mathias Bynens

3

ฉันใช้รูปแบบแป้นพิมพ์ที่กำหนดเองที่สร้างขึ้นด้วยUkelele ใน OS X 10.8.5 ฉันเปลี่ยนเค้าโครงแป้นพิมพ์หน้าจอเข้าสู่ระบบด้วยขั้นตอนต่อไปนี้:

  1. เปิดUsers & GroupsในSystem Preferences
  2. เลือกLogin Optionsจากด้านล่างของแผงด้านซ้าย
  3. ตรวจสอบ Show Input menu in login window
  4. ไปที่หน้าจอเข้าสู่ระบบ
  5. เลือกเลย์เอาต์ที่ต้องการOther input sourcesจากเมนูป้อนข้อมูลที่อยู่ด้านบนขวา
  6. ย้อนกลับและยกเลิกการเลือกShow Input menu in login windowเพื่อป้องกันการเปลี่ยนแปลงรูปแบบการเข้าสู่ระบบต่อไป

ฉันพบวิธีนี้ง่ายกว่าแก้ไข.plistไฟล์สุ่มและรันคำสั่งมันเทอร์มินัล

วิธีนี้อาจต้องการการเข้าถึงระดับผู้ดูแลระบบเนื่องจากคุณอาจต้องปลดล็อกบานหน้าต่างด้านขวาในขั้นตอนที่ 3 ด้านบนโดยคลิกที่ไอคอนล็อคที่ด้านล่าง

อัปเดต:น่าเศร้าที่ดูเหมือนว่ามันจะไม่ทำงานบน OS X 10.9


ฉันได้รับรางวัลแก่คุณเพราะนี่ดูเหมือนจะเป็นคำตอบที่ดีที่สุด แต่มันก็ใช้งานไม่ได้จริง ๆ แล้วมันกลับไปสู่รูปแบบแป้นพิมพ์เริ่มต้นของสหรัฐอเมริกา เพื่อทดสอบสิ่งนี้ฉันได้ใช้รูปแบบแป้นพิมพ์ที่อนุญาตให้ฉันพิมพ์สัญลักษณ์สามตัวด้วยการกดแป้นเดียวเพื่อให้ฉันเห็นจำนวนตัวอักษรที่ถูกซ่อนอยู่ในกล่องป้อนรหัสผ่าน หลังจากใช้ขั้นตอนที่คุณกล่าวถึงฉันสามารถป้อนสัญลักษณ์ได้ครั้งละหนึ่งสัญลักษณ์เท่านั้น (ตามคีย์บอร์ดของสหรัฐอเมริกา)
Mathias Bynens

คุณช่วยอธิบายสิ่งที่ใช้ไม่ได้กับ OS X 10.9 หรือไม่ ฉันสามารถทำตามขั้นตอนเหล่านี้ (ฉันไม่ได้ทำขั้นตอนที่ 6) ได้สำเร็จเมื่อใช้เค้าโครงคนงาน (พบได้ที่นี่: workman.deekayen.net ) อย่างไรก็ตามปัญหาของฉันคือถ้าเลือกเลย์เอาต์นั้นและฉันล็อกคอมพิวเตอร์เมนูอินพุตจะไม่แสดงในหน้าจอเข้าสู่ระบบในขณะที่มันใช้ได้ถ้าฉันมี Dvorak หรือสิ่งอื่นที่สนับสนุนโดย OS X (เช่นฉันเห็นเมนู และสามารถเปลี่ยนกลับเป็น US ได้ถ้าต้องการ)
Timothée Boucher

@ TimothéeBoucher ความคิดเห็นก่อนหน้าของฉันอธิบายสิ่งที่ผิดพลาดและฉันทดสอบสิ่งนี้อย่างไร
Mathias Bynens

2

หลังจากติดตั้ง macOS Sierra รูปแบบที่กำหนดเองของฉันได้รับการกำหนดค่าเริ่มต้นกลับเป็นค่าเริ่มต้นทุกครั้งหลังจากลงชื่อเข้าใช้บัญชีของฉัน

Apple เพิ่มคีย์บอร์ดใหม่และ ID ขัดแย้งกับแป้นพิมพ์ที่ฉันใช้

หากต้องการตรวจสอบหากคุณมีปัญหานี้ให้เรียกใช้:

sudo touch / Library / Keyboard \ Layouts /

ผลลัพธ์:

Keyboard Layouts: duplicate keyboard layout identifier 5000.
Keyboard Layouts: keyboard layout identifier 5000 has been replaced with 16383.

เอาต์พุตอ้างว่าแก้ไขบางสิ่ง แต่จริง ๆ แล้วไม่ได้ทำอะไร ฉันยังต้องแก้ไขเลย์เอาต์ด้วยตัวเองและมันก็เริ่มทำงานเหมือนเดิม


ยังได้รับหนึ่งที่กำหนดเองของฉันเปลี่ยนไป น่าเสียดายที่การแก้ไข ID ในไฟล์ .plist ไม่ได้ช่วยฉัน
Pavel Gurkov

@PavelGurkov คุณเรียกใช้คำสั่ง sudo touch ในโฟลเดอร์หลังจากหรือไม่ มันเป็นสิ่งจำเป็นสำหรับระบบปฏิบัติการที่จะต้องพิจารณา
jrobichaud

ใช่ทำอย่างนั้นไม่มีเอาท์พุทเลย ตรวจสอบทุกอย่างที่ฉันทำได้ แต่ยัง ... ทำงานอย่างไม่มีที่ติบน El Capitan ไม่มีโชคกับเซียร่า
Pavel Gurkov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.