Remap Keys melalui Command Line di Mac OS X

5

Saya mencoba menulis skrip yang akan mereplikasi pengaturan OS X saya. Secara khusus saya ingin memetakan kembali tombol panah ke CMD + H , J , K , L. .

Tekniknya mirip dengan ini Solusi Linux , kecuali file kunci untuk memodifikasi ditemukan di /usr/X11/share/X11/xkb/symbols/us. Itu tidak benar-benar berfungsi seperti yang diharapkan sekalipun dan tampaknya memetakan kunci opsi.

Bagaimana saya bisa memetakan kembali kunci melalui baris perintah di OS X?

Maros Hluska
sumber
Apa yang Anda coba tiru?
Daniel Beck
Pemetaan keyboard yang seharusnya harus dikonfigurasi melalui GUI.
Maros Hluska
GUI yang mana? Preferensi aplikasi Terminal? Pengaturan sebagian besar aplikasi sudah disimpan sebagai file sederhana dan dapat dengan mudah ditransfer ke mesin lain. Selain itu, Terminal memungkinkan pengaturan ekspor dan impor.
Daniel Beck
Saya hanya mencari cara seluruh sistem untuk memetakan kembali kunci melalui command-line. Dengan GUI yang saya maksud adalah pengaturan Keyboard di System Preferences.
Maros Hluska

Jawaban:

3

Pintasan keyboard khusus aplikasi seperti yang dari System Preferences disimpan dalam file preferensi aplikasi yang sesuai di /Users/username/Library/Preferences/, di tingkat atas NSUserKeyEquivalents kunci.

File-file itu dapat dibaca dan ditulis menggunakan /usr/libexec/PlistBuddy dan defaults program di baris perintah.

$ defaults read com.apple.Automator NSUserKeyEquivalents
{
    "Hide Library" = "@$l";
    "Show Library" = "@$l";
}
$ defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "About Terminal" '^@$a'

Simbol dan artinya:

  • @ aku s Perintah
  • $ aku s Bergeser
  • ^ aku s Kontrol
  • ~ aku s Pilihan

Selain itu, Anda cukup menyalin file-file ini ke komputer lain untuk mengambil preferensi pengguna Anda.

Daniel Beck
sumber
Bagaimana saya menemukan kunci pengubah? Saya mengubah Caps Lock untuk mengontrol, bagaimana saya bisa menemukan pengaturan ini melalui baris perintah?
SimonW
0

Menggunakan KeyRemap4MacBook , Anda dapat menyimpan ini sebagai private.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>private.test</identifier>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

Meninggalkan | ModifierFlag::NONE juga akan berubah misalnya ⌥⌘H ke ←.

Lihat sumber untuk konstanta kode kunci dan pengaturan yang telah ditentukan .

Jika Anda ingin mengotomatisasi konfigurasi sepenuhnya, Anda dapat mengaktifkan pengaturan dengan /Library/org.pqrs/KeyRemap4MacBook/app/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli enable private.test.

Lri
sumber
Ini yang saya cari, tapi saya tidak mengerti bagaimana saya akan melakukan konfigurasi dari skrip baris perintah ...
SimonW