Điều quan trọng đối với defaults
lệnh sử dụng "ID bàn phím" chính xác trong phím, có vẻ như là:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0
Ví dụ: bàn phím trong cho MacBook Air của tôi sử dụng: com.apple.keyboard.modifiermapping.1452-579-0
, trong khi bàn phím ngoài trên iMac của tôi sử dụngcom.apple.keyboard.modifiermapping.1118-219-0
Làm thế nào để có được "ID bàn phím" chính xác? Trên dòng lệnh bạn có thể sử dụng:
ioreg -p IOUSB -c IOUSBDevice | grep -e class -e idVendor -e idProduct
để có danh sách các thiết bị USB của bạn với các thông số liên quan:
[...]
+-o Natural® Ergonomic Keyboard 4000@fa140000 <class IOUSBDevice, id 0x100000452, registered, matched, active, busy 0 (115 ms), retain 12>
"idProduct" = 219
"idVendor" = 1118
Tôi đoán là tham số thứ ba (phần "-0") là "bộ đếm", trong trường hợp bạn có nhiều hơn một bàn phím cùng loại.
Vì vậy, để tắt phím CapsLock trên bàn phím ngoài, giờ tôi có thể sử dụng:
defaults -currentHost write -g com.apple.keyboard.modifiermapping.1118-219-0 -array-add '<dict><key>HIDKeyboardModifierMappingDst</key><integer>-1</integer><key>HIDKeyboardModifierMappingSrc</key><integer>0</integer></dict>'
Và, để hoàn thiện, đây là danh sách các mã khóa có thể sử dụng ( từ Gợi ý Mac OS X ):
- Không - Cạn1
- Mũ khóa - 0
- Ca (Trái) - 1
- Kiểm soát (Trái) - 2
- Tùy chọn (Trái) - 3
- Lệnh (Trái) - 4
- Bàn phím 0 - 5
- Trợ giúp - 6
- Ca (Phải) - 9
- Kiểm soát (Phải) - 10
- Tùy chọn (Phải) - 11
- Lệnh (Phải) - 12
Cập nhật: nhờ Lauri Ranta đây là một lệnh hoạt động cho bàn phím Bluetooth & USB:
ioreg -n IOHIDKeyboard -r | grep -e 'class IOHIDKeyboard' -e VendorID\" -e Product
cung cấp cho bạn đầu ra hơi khác nhau:
+-o IOHIDKeyboard <class IOHIDKeyboard, id 0x100000489, registered, matched, active, busy 0 (0 ms), retain 8>
| "Product" = "Apple Wireless Keyboard"
| "VendorID" = 1452
| "ProductID" = 570
defaults -currentHost write -g key 'value'
thay thế. Vẫn không làm việc mặc dù.