Bagaimana cara menampilkan atau menyembunyikan Penampil Keyboard dengan pintasan keyboard?


19

Saya ingin menampilkan dan menyembunyikan Penampil Keyboard menggunakan pintasan.

  • Apakah ada cara untuk menampilkan Penampil Keyboard melalui pintasan keyboard?
  • Apakah ada cara untuk secara otomatis menampilkan Penampil Keyboard setelah saya beralih ke bahasa tertentu?

Solusi yang ideal adalah dengan menetapkan pintasan keyboard ke Apple Script yang menunjukkan Keyboard.
duci9y

Jawaban:


15

Luncurkan Penampil Keyboard dengan Layanan (Peningkatan)

Anda dapat meluncurkan Penampil Keyboard dengan pintasan dengan menggunakan Automator dan fungsionalitas Layanan OS X.

Program Keyboard Viewer hidup di /System/Library/Input Methods/KeyboardViewer.app(dalam versi sebelum Lion, mungkin di /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Anda membukanya dengan hotkey dengan menggunakan Automator untuk membuat layanan peluncur sederhana.

  1. Buka Automator dan pilih Layanan sebagai jenis dokumen baru Anda.
  2. Atur opsi (di bagian atas area alur kerja) ke "Layanan tidak menerima input dalam aplikasi apa pun ".
  3. Tambahkan tindakan Jalankan AppleScript ke alur kerja Anda, dan ganti teks dengan baris berikut:

    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    end if
    
    activate application "KeyboardViewer"
    
    -- wait until the window has been closed, then end the KeyboardViewer process
    set numberOfWindows to 1
    repeat until numberOfWindows = 0
        delay 5
        tell application "System Events"
            tell process "KeyboardViewer"
                set numberOfWindows to count windows
            end tell
        end tell
    end repeat
    quit application "KeyboardViewer"
    
  4. Simpan dengan nama seperti "Open Keyboard Viewer", lalu buka Preferensi Keyboard ke tab Pintasan Keyboard . Pilih Layanan di panel kiri dan gulir ke bawah, tempat Anda akan melihat nama Layanan Anda di bawah Bagian Umum.
  5. Pastikan kotak dicentang untuk mengaktifkannya, lalu pilih dan klik add shortcut untuk mengatur hotkey.
  6. Setelah mengatur tombol pintas, buka menu Layanan di aplikasi apa pun (mis. Pencari> Layanan), lalu tutup. Entah mengapa hot key saya tidak berfungsi sampai saya melakukan ini.

Sepasang catatan:

  • Script mengharuskan Anda mencentang kotak Aktifkan akses untuk perangkat bantu di panel preferensi Akses Universal .
  • Menutup jendela Penampil Keyboard tidak benar-benar keluar dari aplikasi, dan seperti yang ditunjukkan Lri, ini bisa menjadi semacam babi sumber daya, jadi repeatperulangan memeriksa setiap 5 detik apakah Penampil Keyboard memiliki jendela yang terbuka, dan jika tidak, berhenti dari proses.
  • Jika Anda menjalankan OS pra-Lion, Anda mungkin perlu mengganti instance KeyboardViewerdengan KeyboardViewerServer. Saya tidak punya apa-apa yang berguna untuk mengetes ini (jika orang lain bisa melaporkan kembali di komentar, itu akan bagus.
  • Karena skrip loop hingga Penampil Keyboard ditutup, ikon roda gigi Pengotomasi akan ditampilkan di bilah menu hingga ditutup.

IYA! Ini tepat untuk apa yang saya cari. Saya kenal dengan automator dan shell-scripting, hanya membutuhkan petunjuk. Terima kasih banyak ... :)
jm666

Saya memperbarui ini menggunakan Applescript yang menjalankan pemeriksaan untuk melihat apakah jendela telah ditutup, dan jika demikian, berhenti proses, untuk menghindari menguras kinerja. Siapa pun yang tertarik dengan versi lama berbasis bash dapat menemukan revisi itu di sini .
Robmathers

Dengan modifikasi minimal, skrip ini mengaktifkan pemirsa. Ganti "end if" dengan "else" dan pindahkan "else if" ke akhir.
AdamAL

Solusi bagus Namun, item menu "Tampilkan Penampil Keyboard" tidak menyadari bahwa penampil keyboard sedang berjalan? Jadi ini jenis item menu yang pecah jika Anda menggunakan keduanya.
Matt Sephton

/System/Library/Input Methods/KeyboardViewer.apptidak ada di Catalina. Saya membuka semua aplikasi /System/Library/Input Methodsdan tidak ada yang membuka penampil keyboard. Ada ide?
Kerndog73

4

The Script ekstra Plugin dari Quicksilver menawarkan fungsi ini dengan memberikan Tampilkan Keyboard Viewer.scpt .

Juga, ketika Anda membuat Pemicu Quicksilver untuk Tampilkan Keyboard Viewer.scpt dengan tindakan Run , maka Anda mendapatkan tombol pintas Penampil Keyboard global.

Inilah sumber naskahnya:

property theApplication : "KeyboardViewer"
property thePath : "/System/Library/Input Methods/KeyboardViewer.app"

set HFSPath to ((POSIX file thePath) as string)
tell application "System Events" to ¬
    set isRunning to 0 < (count (application processes whose name is theApplication))
if isRunning then
    tell application HFSPath to quit
else
    ignoring application responses
        tell application HFSPath to activate
    end ignoring
end if

Jika KeyboardViewer dibuka dengan AppleScript atau dengan opendan jendela utama ditutup, proses Penampil Keyboard tetap terbuka dan terus menggunakan sekitar 0-20% CPU.


Saya biasanya tidak suka menginstal aplikasi pihak ke-3 untuk hal-hal skrip yang sederhana, tetapi ini pengecualian . :) Terima kasih banyak, bekerja seperti pesona. ;)
jm666

Jika Anda ingin menghindari perangkat lunak pihak ketiga, saya hanya memposting jawaban yang akan melakukan hal yang sama dengan perangkat lunak bawaan.
Robmathers

sry mach, @CanuckSkier memposting jawaban yang saya suka lebih, jadi terima jawabannya. +1 tetap untuk QuickSilver. ;)
jm666

4

Senang saya menemukan utas ini. Berdasarkan jawaban di atas, saya membuat skrip ekstensi Alfred yang mengaktifkan Keyboard Viewer.

https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension

Ini memberikan kata kunci alfred "kv" yang menghidupkan dan mematikan Keyboard Viewer, dengan menjalankan applescript berikut:

-- adapted from http://apple.stackexchange.com/a/62532
if application "KeyboardViewer" is running then
    quit application "KeyboardViewer"
else
    activate application "KeyboardViewer"
end if

(*
-- adapted from http://apple.stackexchange.com/a/59986
tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell
*)
-- icon ripped from osx /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Saya meninggalkan implementasi alternatif yang dikomentari, jika saya mengalami masalah kinerja yang harus dihindari.


1
Tautan rusak. Apakah Anda akan berbaik hati mempostingnya lagi? Ini adalah Alur Kerja Alfred yang akan saya gunakan.
ddaa

Ini dia, saya mengimplementasikannya (dan juga menambahkan pintasan keyboard Cmd + Alt + Ctrl + Shift + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton

3

Saya telah menemukan cara melalui BetterTouchTool untuk melakukan hal berikut:

  • Aktifkan Penampil Keyboard dengan pintasan
  • Tutup Penampil Keyboard dengan pintasan lain
  • Toggle Keyboard Viewer dengan satu cara pintas (tidak perlu untuk dua sebelumnya)
  • Saya juga mengunggah AppleScript untuk kenyamanan

Platform: rMBP Mountain Lion OSX 10.8


Aktifkan Penampil Keyboard dengan pintasan

  • Luncurkan BetterTouchTool
  • Tambahkan pintasan keyboard
  • Tambahkan tindakan Standar >> Buka Aplikasi / File / Script ...
  • Arahkan ke Macintosh HD / System / Library / Metode Input /
  • Pilih KeyboardViewer

Sekarang Anda memiliki pintasan keyboard untuk mengaktifkan penampil tanpa skrip tambahan.

NAMUN, saya perhatikan bahwa menekan tombol X merah tidak benar-benar keluar dari aplikasi, yang berarti bahwa penampil keyboard hanya akan diaktifkan sekali. Jadi, Anda perlu membuat skrip untuk keluar dari program.

Untuk memperbaiki masalah ini:


Tutup Penampil Keyboard dengan pintasan keyboard lain

  • Buka Automator
  • Pilih Aplikasi sebagai jenis dokumen
  • Tambahkan RunAppleScript
  • Di mana dikatakan (* Script Anda ada di sini *), ganti dengan quit application "KeyboardViewer"
  • Kompilasi dan simpan seperti dalam dokumen atau di mana pun Anda inginkan (saya memindahkannya ke lokasi yang sama dengan KeyboardViewer)
  • Buka BetterTouchTool
  • Tambahkan pintasan keyboard
  • Tambahkan tindakan Standar >> Buka Aplikasi / File / Script ...
  • Temukan file aplikasi yang baru saja Anda simpan

Anda sekarang memiliki cara untuk keluar dari penampil KeyBoard untuk selamanya setelah diaktifkan. Gunakan itu sebagai ganti tombol X merah. Sampai saya mengetahui mengapa penampil keyboard tidak sepenuhnya berhenti ketika Anda menekan tombol X, ini harus menjadi solusi Anda.

EDIT

Saya telah menemukan cara untuk MENGGOSOK penampil keyboard !!


TOGGLE KEYBOARD VIEWER dengan satu pintasan keyboard

proses yang sama seperti sebelumnya tetapi kode diubah:

  • Buka Automator
  • Pilih Aplikasi sebagai jenis dokumen
  • Tambahkan RunAppleScript
  • Di mana dikatakan (* Script Anda ada di sini *), ganti dengan
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Kompilasi dan simpan seperti dalam dokumen atau di mana pun Anda inginkan (saya memindahkannya ke lokasi yang sama dengan KeyboardViewer)
  • Buka BetterTouchTool
  • Tambahkan pintasan keyboard
  • Tambahkan tindakan Standar >> Buka Aplikasi / File / Script ...
  • Temukan file aplikasi yang baru saja Anda simpan

Sekarang Penampil Keyboard beralih dan Anda bahkan tidak perlu menetapkan beberapa pintasan!


Tautan untuk AppleScript

Saya mengunggah aplikasi secara online untuk akses yang lebih cepat daripada melakukan seluruh langkah pengkodean di atas (cukup aktifkan aplikasi ini melalui BetterTouchTool) Namun, karena saya bukan penerbit yang teridentifikasi, OS Anda dapat memblokir menjalankan aplikasi ini, tergantung pada preferensi keamanan Anda. Jadi, jika Anda memilih untuk tidak menjalankan aplikasi dari penerbit yang tidak dikenal, cukup ikuti langkah-langkah di atas untuk membuat aplikasi Anda sendiri!

Tautan ke file: https://www.box.com/s/e2461c91e30e0af025e7


Semoga ini bisa membantu siapa saja karena membantu saya :)


fantastis!! Saya pikir menambahkan aplikasi keyboardViewer langsung ke indeks launchbar saya akan menjadi pengganti yang baik untuk tujuan saya, tetapi tidak ada pilihan untuk menutup kbv setelah dijalankan! jadi, Anda tidak dapat meminta itu untuk kedua kalinya - aneh. lagipula skrip Anda berhasil! (Saya harus menyimpannya sebagai skrip / jalankan hanya agar bisa bekerja untuk saya.) Tx!
ptim

@memeLab Senang itu berhasil untuk Anda :)
Render

3

Ini juga akan berfungsi setelah jendela utama ditutup dengan mengklik tombol tutup:

if application "KeyboardViewer" is running then
    tell application "System Events" to number of windows of process "KeyboardViewer"
    if result is 0 then
        quit application "KeyboardViewer"
        delay 0.1
        launch application "KeyboardViewer"
    else
        quit application "KeyboardViewer"
    end if
else
    launch application "KeyboardViewer"
end if

Jika Keyboard Viewer dibuka dengan AppleScript atau open -a KeyboardViewerdan jendela utama ditutup, proses tetap terbuka dan tetap menggunakan sekitar 0-15% CPU. Itu tidak terjadi ketika memilih Show Keyboard Viewer dari menu input. Jadi pilihan yang lebih baik adalah dengan mengklik item menu:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell

Kedua skrip memerlukan akses untuk perangkat bantu yang harus diaktifkan di panel preferensi aksesibilitas.


2

Ini bukan pintasan satu langkah, tetapi solusi "non-mousing" adalah Fn+ Ctrl+ F8untuk menetapkan fokus pada ikon " Status menu " di sisi kanan bilah menu. ( Bagian 4 )

masukkan deskripsi gambar di sini

Panah akan menavigasi Anda ke ikon Preferensi Keyboard dan opsi Tampilkan / Sembunyikan. Ketika Anda memasukkan Fn+ Ctrl+ F8ikon ke sisi paling jauh dari ikon "Status menu" yang berada di bagian kanan bilah menu akan disorot. Setelah dipilih, kemudian gunakan Right Arrow →untuk menavigasi ke yang Anda inginkan. Gunakan Down Arrow ↓untuk membuka menu dan pilih opsi yang Anda inginkan. Perhatikan bahwa Optiontombol akan membuat opsi menu berbeda tersedia di beberapa "menu status".

masukkan deskripsi gambar di sini

Dengan catatan, Fn+ Ctrl+ F2akan mengaktifkan ikon menu Apple  di sebelah kiri. Dari sana Right Arrow →akan memberi Anda akses ke menu Aplikasi. Opsi ini tersedia di System Preferences >> Keyboard >> Shortcuts :: Keyboard:

masukkan deskripsi gambar di sini

Bergantung pada bagaimana Anda mengonfigurasi tombol Fungsi Anda, Fnini opsional.

masukkan deskripsi gambar di sini

Di macOS Sierra Anda juga dapat menggunakan Siri untuk membantu ini. Aktifkan Siri dengan pintasan keyboard mana pun yang Anda pilih dari System Preferences >> Siri :: Pintasan Keyboard, misalnya Option+Spacebar

masukkan deskripsi gambar di sini

... lalu ucapkan "Aktifkan Penampil Keyboard"

masukkan deskripsi gambar di sini

... dan voila:

masukkan deskripsi gambar di sini

Sayangnya, Siri tidak akan menutup Penampil Keyboard, juga tidak akan Command⌘+w


0

Anda dapat melakukan semuanya dengan Automator:

  1. buka Automator dan pilih "Aplikasi"
  2. di atas Library temukan "Luncurkan aplikasi", klik dua kali
  3. pilih "lain" dan arahkan ke file KeyboardViewer di / System / Library / Metode Input
  4. Simpan dengan nama seperti "start keyboard". menguji.

bagian selanjutnya adalah menutup keyboard:

  1. buka Automator dan pilih "Aplikasi"
  2. di atas Perpustakaan temukan "Keluar dari aplikasi", klik dua kali
  3. pilih "lain" dan arahkan ke file KeyboardViewer di / System / Library / Metode Input

  4. Simpan dengan nama seperti "keluar dari keyboard". menguji.

sekarang Anda akan memiliki dua file satu untuk dibuka, satu untuk ditutup.

yang Anda butuhkan hanyalah mengaitkan tombol mouse Anda untuk meluncurkan dua file ini!

misalnya, saya menggunakan Microsoft Bluetooth Notebook Mouse 5000 dan itu

bekerja sangat baik untuk saya di 10.9.1


0

Monitor Aktivitas, KeyboardViewer.app diluncurkan dari

Lokasi pencari: / Sistem / Perpustakaan / Metode Input / KeyboardViewer.app .

Penggunaan normal: buka dari Menu Bar , tutup dari mouse hover untuk melihat tombol jendela di mana (x) tombol tutup dapat diklik. Untuk mengaktifkan panel Menu Bar , System Preferences , Keyboard , tab Keyboard , pilih Show Keyboard and Emoji Viewers di bilah menu .

Applet KeyboardViewer menunjukkan perilaku terbatas.

  1. Jendela applet tidak responsif terhadap ⌘-Q , ⌘-W .
  2. Anehnya, ketika dibuka dari folder Metode Input , maka Activity Monitor menunjukkan bahwa applet tetap berjalan setelah jendelanya ditutup.
  3. Automator AppleScript yang ditunjukkan di bawah ini berjalan lambat di latar belakang, layanan papan ketik memerlukan waktu beberapa detik untuk mendaftarkan tindakan yang terbuka dan ditutup di Activity Monitor.
  4. Skrip pintasan keyboard yang ditunjukkan di bawah ini berjalan tanpa kesalahan tetapi sistem tampaknya mengabaikan.
  5. Aplikasi Berhenti Sierra Automator tidak akan menutup KeyboardViewer.app

Script Automator berikut dapat disimpan sebagai aplikasi untuk membuka-tutup KeyboardViewer.app dengan satu klik (Monitor Aktivitas juga menunjukkan aktivitas buka-tutup ini), dan berfungsi dengan baik saat ditempatkan di Dock.

Automator: Baru , Aplikasi , Jalankan AppleScript , simpan skrip ini

-- see above post, Render
    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
        else 
            activate application "KeyboardViewer"
        end if
        return input
    end run
-- icon /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Sayangnya, ini tidak menambahkan pintasan keyboard. Namun, ia menawarkan solusi satu-klik. Mungkin ada beberapa cara untuk menambahkan pintasan keyboard menggunakan Automator. Skrip cara pintas umum terlihat seperti ini (tetapi tidak yakin cara memasukkannya).

tell application "System Events"
    set application "KeyboardViewer" to keystroke "K" using control down
end tell

(macOS Sierra 10.12.6 pada MP 6,1)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.