ฉันต้องการสลับคำสั่งที่ถูกต้องด้วยตัวเลือกที่เหมาะสมปุ่มเท่านั้น
เมื่อติดตั้งผมระดับโลกคำสั่งและตัวเลือกการแลกเปลี่ยนในการตั้งค่าระบบ ... > คีย์บอร์ด> ปรับเปลี่ยนคีย์ ... , มีดังต่อไปนี้การตั้งค่าในระบบ (ซึ่งทำงานตามที่คาด):
$ defaults -currentHost read -g com.apple.keyboard.modifiermapping.1452-591-0
(
{
HIDKeyboardModifierMappingDst = 30064771299;
HIDKeyboardModifierMappingSrc = 30064771298;
},
{
HIDKeyboardModifierMappingDst = 30064771303;
HIDKeyboardModifierMappingSrc = 30064771302;
},
{
HIDKeyboardModifierMappingDst = 30064771298;
HIDKeyboardModifierMappingSrc = 30064771299;
},
{
HIDKeyboardModifierMappingDst = 30064771302;
HIDKeyboardModifierMappingSrc = 30064771303;
}
)
แต่เมื่อฉันแก้ไขมันเพื่อสลับเฉพาะด้านขวาดังนี้ - มันไม่ทำงาน:
$ defaults -currentHost write -g com.apple.keyboard.modifiermapping.1452-591-0 '(
{
HIDKeyboardModifierMappingDst = 30064771303;
HIDKeyboardModifierMappingSrc = 30064771302;
},
{
HIDKeyboardModifierMappingDst = 30064771302;
HIDKeyboardModifierMappingSrc = 30064771303;
}
)'
เป็นเพราะค่าถูกเขียนเป็นสตริงไม่ใช่จำนวนเต็ม คุณจะเห็นว่าการใช้:
$ plutil -convert xml1 -o - ~/Library/Preferences/ByHost/.GlobalPreferences.*.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.keyboard.modifiermapping.1452-591-0</key>
<array>
<dict>
<key>HIDKeyboardModifierMappingDst</key>
<string>30064771303</string>
<key>HIDKeyboardModifierMappingSrc</key>
<string>30064771302</string>
</dict>
<dict>
<key>HIDKeyboardModifierMappingDst</key>
<string>30064771302</string>
<key>HIDKeyboardModifierMappingSrc</key>
<string>30064771303</string>
</dict>
</array>
</dict>
</plist>
ดังนั้นวิธีที่ถูกต้องในการอัปเดตการตั้งค่าก็คือการใช้รูปแบบ XML:
$ defaults -currentHost write -g com.apple.keyboard.modifiermapping.1452-591-0 -array \
'<dict>
<key>HIDKeyboardModifierMappingDst</key>
<integer>30064771303</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>30064771302</integer>
</dict>' \
'<dict>
<key>HIDKeyboardModifierMappingDst</key>
<integer>30064771302</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>30064771303</integer>
</dict>'
ในตอนท้ายคุณต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้ง