Beralih ke sumber input spesifik

23

Di Mac OS X, ada pintasan keyboard untuk beralih di antara sumber input yang diaktifkan.

teks alternatif

Apakah mungkin untuk beralih ke bahasa tertentu? Jadi, jika Anda memiliki 3 metode input, Anda bisa memiliki 3 cara pintas: Ctrl-1untuk bahasa Inggris, Ctrl-2untuk bahasa Spanyol dan Ctrl-3untuk bahasa Rusia.

Nikem
sumber
Tata letak keyboard dan bahasa antarmuka bersifat independen. Dan karena bahasa antarmuka hanya berlaku setelah memulai ulang suatu program, apa pun yang Anda peroleh dengan pintasan akan dinegasikan oleh persyaratan untuk memulai kembali aplikasi.
Daniel Beck
Saya tidak tertarik mengubah bahasa antarmuka. Hanya bahasa input yang menarik.
Nikem
Saya mempersingkat dan mengklarifikasi pertanyaan Anda. Harap kembali jika Anda pikir saya melakukan sesuatu yang salah (saya baru melakukan ini).
Daniel Beck

Jawaban:

7

Saya hadir untuk Anda, "solusi" paling jelek yang mungkin:

  • Aktifkan dukungan untuk perangkat bantu di System Preferences »Universal Access ,
  • dan menampilkan menu Sumber Input di menu di System Preferences »Bahasa dan Teks .
  • Pastikan pintasan Ctrl-F8ditetapkan untuk Memindahkan fokus ke menu status di Preferensi Sistem »Keyboard» Pintasan Keyboard »Input Keyboard & Teks .
  • Pastikan menu Sumber Input adalah item menu paling kiri yang dapat dipindahkan dengan menyeret sambil menahan Cmd.

Gunakan AppleScript Editordan tulis tiga skrip, masing-masing dengan kode berikut:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

Simpan satu kali untuk setiap bahasa, ganti nama bahasa tersebut. Jika Anda ingin menekan tombol yang berbeda, atau menetapkan sesuatu yang berbeda dari Ctrl-F8, gantikan dengan kode kunci di sini . Anda juga dapat memindahkan menu Sumber Input dari posisi paling kiri dengan memasukkan beberapa penekanan tombol panah kanan .

Aktifkan skrip sesuai keinginan Anda, mis. Gunakan peluncur aplikasi Anda (Quicksilver, Launchbar, dll.), Atau bungkus dalam Layanan menggunakan Automator, dan tetapkan pintasan keyboard di Preferensi Sistem »Keyboard» Pintasan Keyboard »Layanan .

Daniel Beck
sumber
1
@Nikem Apakah berhasil?
Daniel Beck
1
Ya itu berhasil.
Nikem
1
Anda, Daniel, meskipun saya telah memilih solusi lain, namun terima kasih telah memperkenalkan saya pada Action Script and Services :)
Nikem
@Nikem Sama-sama. Harap pilih jawaban saya dengan mengklik "segitiga panah atas" di sebelahnya jika Anda menemukan jawaban ini berguna. Anda juga dapat menerima jawaban (menunjukkan bahwa itu adalah jawaban yang paling Anda sukai, dan menganggap masalah Anda telah terpecahkan) dengan mengklik tanda centang di sebelahnya. Omong-omong, ActionScript adalah Adobe, ini AppleScript.
Daniel Beck
@ Danielel Bahkan, saya tidak tahu jawaban mana yang direkomendasikan. Saya telah memilih milik saya, tetapi milik Anda lebih dapat digunakan ...
Nikem
12

Saya datang dengan solusi yang sedikit lebih bagus di AppleScript, mengingat Anda tahu nama Layout Keyboard yang ingin Anda alihkan. Buat fungsi seperti ini:

on changeKeyboardLayout(layoutName)
 tell application "System Events" to tell process "SystemUIServer"
   tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
 end tell
end changeKeyboardLayout

dan kemudian menyebutnya

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

Perlu diketahui bahwa nama-nama Layout Keyboard dilokalkan, yaitu pada sistem Jerman contoh di atas perlu memanggil "Englisch" dan "Deutsch".

Asmus
sumber
Jelas lebih bagus dari milik saya. Saya benar-benar harus belajar AppleScript saya dengan benar.
Daniel Beck
ini bekerja dengan sempurna selama bertahun-tahun tetapi dengan Catalina tampaknya "input teks" tidak lagi dapat diakses di menu bar
Frank Mittelbach
6

Salah satu opsi adalah mengunduh changeInput dan menetapkan pintasan ke perintah shell like changeInput U.S..

Anda juga bisa menggunakan KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

Lihat dokumentasi private.xml .

VK_CHANGE_INPUTSOURCE_ENGLISH didefinisikan dalam vkchangeinputsourcedef.xml . Anda dapat melihat ID sumber input dari EventViewer.app. Tanpa | ModifierFlag::NONEmisalnya pengaturan pertama juga akan berlaku untuk opsi-command-E. Lihat sumber untuk nilai kode kunci dan pengaturan yang telah ditentukan .

Lri
sumber
4

Saya tahu ini pertanyaan lama. Tetapi bahkan pada akhir 2016, saya masih belum menemukan solusi yang sederhana dan baik. Karena itu, saya membuat IMEShortcuts , berfungsi di Sierra. Anda dapat menetapkan pintasan khusus untuk metode input spesifik apa pun. Tolong, cobalah. Dan jika kalian menemukan bug, dengan senang hati saya akan membantu.

Selain itu, Karabiner (dikenal sebagai KeyRemap4MacBook) adalah penyesuai keyboard yang hebat untuk Mac. Tapi ini sedikit rumit dan saat ini rusak di Sierra. Jika Anda menggunakan Yosemite atau El Capitan, itu akan menjadi pilihan bagus lainnya.

rock9c
sumber
Terima kasih untuk IMEShortcuts! Itu sangat bagus. Saya dengan senang hati akan membayar $ 5 atau lebih untuk itu jika Anda menambahkan ikon ke menu untuk menunjukkan bahasa aktif (jadi saya tidak perlu memiliki KEDUA IMEshortcuts dan ikon aplikasi di menu saya mengambil ruang). Saya juga ingin dapat menyesuaikan ikon yang digunakan — misalnya saya ingin menggunakan input Prancis Kanada karena lebih dekat dengan US QWERTY, tetapi saya ingin melihat bendera Prancis karena bendera Kanada tidak melambangkan "Prancis" untuk saya. Hal-hal itu akan membuatnya luar biasa!
iconoclast
Kata peringatan: jika Anda belum mengunduh IMEShortcuts di masa lalu (sebelum pendaftaran domain berakhir dan digantikan oleh halaman squatter dengan malware ekstensi chrome), jangan ambil apa pun dari rockcell.com hingga hal itu ditangani.
ecmanaut
1

Saya punya solusi lain yang paling memuaskan saya. KeyRemap4MacBook adalah aplikasi yang memungkinkan Anda untuk memetakan kembali tombol keyboard Anda. Di antara hal-hal lain itu memungkinkan untuk beberapa, tidak sama sekali lengkap, dukungan untuk perubahan bahasa. Jadi kami membuat beberapa konfigurasi khusus yang saya inginkan.

Cons: - aplikasi pihak ketiga - hanya dukungan bahasa terbatas untuk saat ini

Pro: - Secara konseptual sedikit lebih bagus daripada yang menjalankan skrip di UI

Nikem
sumber
Saya tidak menemukan apa pun yang terkait dengan penggunaan sumber input yang fleksibel di situs web, hanya beberapa tindakan yang berkaitan dengan bahasa Rusia / Inggris. Bisakah Anda menguraikan?
Daniel Beck
Itu tidak fleksibel. Kebetulan itu mendukung beralih ke bahasa Inggris dan Rusia (dan sekarang Estonia), yang merupakan bahasa yang saya butuhkan. Dan itu memungkinkan Anda untuk memetakan kombinasi kunci sewenang-wenang untuk tindakan tersebut. Beralih ke bahasa dalam kasus saya.
Nikem
Saya mengalami kesulitan menemukan cara mengatur ini dengan Karabiner.
Ivan Balashov
1

Di AppleScript Anda hanya harus mengambil cmd + "space" (atau yang lainnya, apa yang Anda ubah dari sumber keyboard).

Dan semua yang Anda butuhkan:

    key code 49 using command down

49 - kode tombol 'spasi' di ASCII untuk AppleScript.

PS: jangan lupa dapatkan akses untuk utilitas AppleScript di Preferensi Sistem.

Ivan Trubnikov
sumber
1

Found kawa - aplikasi yang cukup sederhana untuk memenuhi kebutuhan Anda. Atur pintasan untuk langsung beralih ke sumber input yang diperlukan.

qwad1000
sumber
1
Selamat datang di Pengguna Super. Silakan baca Cara Merekomendasikan Perangkat Lunak kemudian edit jawaban Anda untuk memasukkan setidaknya informasi minimum yang diperlukan (item dalam huruf tebal ). Posting tanpa informasi ini dapat dihapus. Terima kasih telah berkontribusi.
Saya katakan Reinstate Monica
0

Tautan ini memiliki video tentang cara melakukannya. Ini sudah memiliki hotcake dengan "command + space", tetapi tombol pintas sorotan juga "command + space". Spotlight menunggang hot-key, sehingga pergantian bahasa tidak terjadi. Video di tautan akan menunjukkan kepada Anda cara mengubah hot-key sehingga Anda dapat beralih hot-key.

Semoga berhasil,

David
sumber
1
Dia sudah tahu cara beralih antar bahasa, dia ingin beralih ke bahasa tertentu , karena dia mungkin memiliki lebih dari 2 diaktifkan.
Daniel Beck
Ya, persis seperti yang dikatakan Daniel. Saya memiliki 3 bahasa input dan perlu memilih bahasa tertentu.
Nikem
Maaf ... saya pasti salah paham pertanyaannya. Saya pikir Anda mencoba membuat cara untuk beralih antara bahasa dengan tombol pintas.
David