Saya mencoba untuk mengotomatiskan pengaturan awal macbook saya, yang mencakup menginstal perangkat lunak dan mengubah konfigurasi OS X untuk kebutuhan saya.
Saya telah mencoba memperbarui kunci pengubah dengan default, kodenya adalah sebagai berikut:
# The apple keyboard id (1452-567-0) should probably be modified in case you use other different model
COMPUTER_UUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -E '(UUID)' | awk '{print $3}' | tr -d \"`
defaults write ~/Library/Preferences/ByHost/.GlobalPreferences.$COMPUTER_UUID com.apple.keyboard.modifiermapping.1452-567-0 '( { HIDKeyboardModifierMappingDst = 2; HIDKeyboardModifierMappingSrc = 0; } )'
Masalahnya tampaknya bahwa bahkan jika pola diubah Preferensi Sistem tidak menangkap pembaruan, bahkan tidak me-restart komputer.
Apakah ada cara untuk melakukan operasi ini di Snow Leopard?
Terima kasih.
macos
command-line
automator
bash
Robot
sumber
sumber
defaults -currentHost write -g key 'value'
saja. Tapi tetap saja tidak berhasil.Jawaban:
Sangat penting bagi
defaults
perintah untuk menggunakan "keyboard ID" yang benar dalam kunci, sepertinya:com.apple.keyboard.modifiermapping.$VendorID-$ProductID-0
Misalnya keyboard internal untuk MacBook Air
com.apple.keyboard.modifiermapping.1452-579-0
saya gunakan:, sedangkan keyboard eksternal pada iMac saya gunakancom.apple.keyboard.modifiermapping.1118-219-0
Bagaimana cara mendapatkan "ID keyboard" yang benar? Di baris perintah Anda dapat menggunakan:
untuk mendapatkan daftar perangkat USB Anda dengan parameter yang relevan:
Dugaan saya adalah bahwa parameter ketiga (bagian "-0") adalah "penghitung", jika Anda memiliki lebih dari satu keyboard dengan tipe yang sama.
Jadi, untuk mematikan tombol CapsLock pada keyboard eksternal saya sekarang saya dapat menggunakan:
Dan, demi kelengkapan, berikut adalah daftar kode kunci yang mungkin digunakan ( dari Mac OS X Petunjuk ):
Pembaruan: terima kasih kepada Lauri Ranta di sini adalah perintah yang berfungsi untuk keyboard Bluetooth & USB:
yang memberi Anda output yang sedikit berbeda:
sumber
'{ HIDKeyboardModifierMappingDst = -1; HIDKeyboardModifierMappingSrc = 0; }'
yang dapat Anda temukan di beberapa website, setidaknya untuk saya "-1" dan "0" nilai dict ini kemudian ditafsirkan sebagai string, tidak bilangan bulat. Itu mengarah ke keadaan aneh di mana Preferensi menunjukkan tombol pengubah yang diubah, tetapi keyboard tidak benar-benar berperilaku seperti itu.ioreg -n IOHIDKeyboard -r
juga akan menyertakan keyboard Bluetooth.Masalah yang saya alami adalah bahwa setiap kali saya mencolokkan keyboard, ia mendapatkan ID yang berbeda di ioreg. Yang perlu saya lakukan adalah menukar perintah dan kunci apel.
Saya memutuskan untuk menyelesaikan ini dalam kasus saya dengan "cara yang salah" menggunakan AppleScript dan System Preferences GUI. Ini hack yang jelek, tapi berhasil! Jarak tempuh Anda mungkin beragam.
sumber
Saya juga tidak bisa mendapatkan
defaults write
(atau memperbarui file .plist ) untuk mempengaruhi pengaturan HIDKeyboardModifierMappingSrc dan HIDKeyboardModifierMappingDst saya di bawah Snow Leopard .Saya mencoba untuk "mengisi dulu" akun Guest saya untuk mendukung keyboard PS2-to-USB saya (yang ternyata memiliki Opsi dan Perintah yang ditukar.) Saran halaman lain untuk "keluar dan masuk kembali" tidak membantu; "Keluar" dari akun Tamu menghapus semua perubahan saya.
(Saya telah berhasil memperbarui file "com.apple.dock" dan "com.apple.menuextra.clock" masing-masing untuk menyesuaikan dock dan jam 24 jam, yang membuatnya semakin membuat frustasi karena Modifiers Keyboard menang '. t bekerja ...)
Saya sudah mencoba menggunakan "dtruss -asf" untuk membandingkan apa yang dilakukan "System Preferences.app" (yang tampaknya berfungsi) dengan apa yang "default" lakukan. Terdekat yang bisa saya pikirkan, saya melihat pesan di sepanjang baris:
Jika ada yang menemukan solusi yang bekerja di bawah Snow Leopard, saya akan senang mendengarnya ...
sumber
diff
untuk memverifikasi bahwa Anda membuat file ini persis seperti UI?fs_usage
ataulsof
untuk mencari tahu apa lagi yang sedang dilakukan ketika Anda menggunakan UI.sumber
fs_usage
tidak menunjukkan sesuatu yang menarik AFAICT, dan saya memverifikasi (dengan perintah saya yang dimodifikasi dalam komentar untuk pertanyaan) bahwa hasilnya muncul seperti yang diharapkan.