ฉันต้องการแสดงและซ่อน Keyboard Viewer โดยใช้ทางลัด
- มีวิธีในการแสดง Keyboard Viewer ผ่านทางแป้นพิมพ์ลัดหรือไม่?
- มีวิธีการแสดงตัวแสดงคีย์บอร์ดโดยอัตโนมัติเมื่อฉันเปลี่ยนเป็นภาษาใดภาษาหนึ่งหรือไม่?
ฉันต้องการแสดงและซ่อน Keyboard Viewer โดยใช้ทางลัด
คำตอบ:
คุณสามารถเปิดใช้ Keyboard Viewer ด้วยช็อตคัตโดยใช้ฟังก์ชั่น Automator และ OS X Services
โปรแกรม Keyboard Viewer ใช้งานได้ที่/System/Library/Input Methods/KeyboardViewer.app
(ในเวอร์ชันก่อนหน้า Lion อาจเป็นได้/System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app
) คุณเปิดด้วยฮอตคีย์โดยใช้ Automator เพื่อสร้างบริการตัวเรียกใช้งานอย่างง่าย
เพิ่มแอ็คชันRun AppleScriptให้กับเวิร์กโฟลว์ของคุณและแทนที่ข้อความด้วยบรรทัดต่อไปนี้:
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"
หมายเหตุคู่:
repeat
ลูปจะตรวจสอบทุก 5 วินาทีถ้าตัวแสดงแป้นพิมพ์มีหน้าต่างที่เปิดอยู่และถ้าไม่ออก กระบวนการ.KeyboardViewer
KeyboardViewerServer
ฉันไม่ได้เตรียมอะไรมาก่อนเพื่อทดสอบสิ่งนี้ (ถ้ามีคนอื่นสามารถรายงานกลับมาในความคิดเห็นได้/System/Library/Input Methods/KeyboardViewer.app
ไม่มีอยู่ใน Catalina ฉันเปิดแอปพลิเคชั่นทั้งหมด/System/Library/Input Methods
และไม่มีผู้ใดเปิดโปรแกรมดูคีย์บอร์ด ความคิดใด ๆ
สคริปพิเศษปลั๊กอินของปรอทมีฟังก์ชันการทำงานนี้โดยการให้แสดงแป้นพิมพ์ Viewer.scpt
นอกจากนี้เมื่อคุณสร้าง Quicksilver Trigger สำหรับShow Keyboard Viewer.scptพร้อมแอ็คชั่นRunคุณจะได้รับฮอตคีย์คีย์บอร์ด Viewer ระดับโลก
นี่คือที่มาของสคริปต์:
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
หาก KeyboardViewer เปิดด้วย AppleScript หรือด้วยopen
และหน้าต่างหลักปิดอยู่กระบวนการของตัวแสดงคีย์บอร์ดจะยังคงเปิดอยู่และใช้ CPU ต่อไปประมาณ 0-20%
ดีใจที่พบกระทู้นี้ จากคำตอบข้างต้นฉันได้สร้างสคริปต์ส่วนขยายของอัลเฟรดซึ่งสลับกับตัวแสดงแป้นพิมพ์
https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension
มันมีคำหลักอัลเฟรด "kv" ที่สลับเปิดและปิด Keyboard Viewer โดยเรียกใช้ applescript ต่อไปนี้:
-- 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
ฉันออกจากการใช้งานทางเลือกแสดงความคิดเห็นในกรณีที่ฉันประสบปัญหาประสิทธิภาพที่ควรหลีกเลี่ยง
ฉันได้พบวิธีผ่าน BetterTouchTool เพื่อทำสิ่งต่อไปนี้:
แพลตฟอร์ม: rMBP Mountain Lion OSX 10.8
เปิดใช้งาน Keyboard Viewer โดยทางลัด
ตอนนี้คุณมีแป้นพิมพ์ลัดเพื่อเปิดใช้งานโปรแกรมดูโดยไม่ต้องมีสคริปต์เพิ่มเติม
อย่างไรก็ตามฉันสังเกตเห็นว่าการกดปุ่ม X สีแดงไม่ได้เป็นการออกจากแอปพลิเคชันซึ่งหมายความว่าโปรแกรมดูคีย์บอร์ดจะเปิดใช้งานเพียงครั้งเดียว ดังนั้นคุณต้องสร้างสคริปต์เพื่อออกจากโปรแกรม
ในการแก้ไขปัญหานี้:
ปิดตัวแสดงคีย์บอร์ดโดยแป้นพิมพ์ลัดอื่น
quit application "KeyboardViewer"
ตอนนี้คุณมีวิธีที่จะออกจากโปรแกรมดู KeyBoard ให้ดีเมื่อเปิดใช้งาน ใช้มันแทนปุ่ม X สีแดง จนกว่าฉันจะเข้าใจว่าทำไมตัวแสดงคีย์บอร์ดไม่หยุดอย่างสมบูรณ์เมื่อคุณกดปุ่ม X สิ่งนี้ควรเป็นคำตอบของคุณ
แก้ไข
ฉันได้คิดวิธีที่จะสลับโปรแกรมดูแป้นพิมพ์ !!
สลับมุมมองแป้นพิมพ์ด้วยแป้นพิมพ์ลัดเดียว
กระบวนการเดียวกับก่อน แต่รหัสมีการเปลี่ยนแปลง:
if application "KeyboardViewer" is running then quit application "KeyboardViewer" else activate application "KeyboardViewer" end if
ตอนนี้ตัวแสดงคีย์บอร์ดถูกสลับและคุณไม่จำเป็นต้องกำหนดปุ่มลัดหลายอัน!
ลิงก์สำหรับ AppleScript
ฉันอัปโหลดแอปออนไลน์เพื่อให้เข้าถึงได้เร็วขึ้นแทนที่จะทำตามขั้นตอนการเข้ารหัสด้านบนทั้งหมด (เพียงเปิดใช้งานแอปนี้ผ่าน BetterTouchTool) อย่างไรก็ตามเนื่องจากฉันไม่ใช่ผู้เผยแพร่ที่ระบุระบบปฏิบัติการของคุณอาจปิดกั้นการใช้งานแอปนี้ ดังนั้นหากคุณไม่ต้องการรันแอพจากผู้เผยแพร่ที่ไม่ระบุชื่อเพียงทำตามขั้นตอนด้านบนเพื่อสร้างแอพของคุณเอง!
ลิงก์ไปที่ไฟล์: https://www.box.com/s/e2461c91e30e0af025e7
หวังว่าจะช่วยทุกคนตามที่ช่วยฉัน :)
วิธีนี้จะใช้ได้หลังจากหน้าต่างหลักถูกปิดโดยคลิกปุ่มปิด:
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
หาก Keyboard Viewer เปิดด้วย AppleScript หรือopen -a KeyboardViewer
และปิดหน้าต่างหลักกระบวนการจะยังคงเปิดอยู่และใช้งาน CPU ต่อไปประมาณ 0-15% มันจะไม่เกิดขึ้นเมื่อเลือก Show Keyboard Viewer จากเมนูอินพุต ดังนั้นตัวเลือกที่ดีกว่าอาจจะคลิกที่รายการเมนู:
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
สคริปต์ทั้งสองต้องการการเข้าถึงเพื่อเปิดใช้งานอุปกรณ์อำนวยความสะดวกในบานหน้าต่างการตั้งค่าการช่วยสำหรับการเข้าถึง
ไม่ใช่ช็อตคัทช็อตเดียว แต่โซลูชัน "ที่ไม่ใช้เมาส์" คือFn+ Ctrl+ F8เพื่อตั้งโฟกัสที่ไอคอน " เมนูสถานะ " ที่ด้านขวาของแถบเมนู ( ส่วนที่ 4 )
ลูกศรจะนำทางคุณไปยังไอคอนการตั้งค่าคีย์บอร์ดและตัวเลือกแสดง / ซ่อน เมื่อคุณป้อนFn+ Ctrl+ F8ไอคอนไปทางด้านซ้ายสุดของไอคอน "เมนูสถานะ" ซึ่งอยู่ทางด้านขวาของแถบเมนูจะได้รับการเน้น เมื่อเลือกแล้วให้ใช้Right Arrow →เพื่อนำทางไปยังรายการที่คุณต้องการ ใช้Down Arrow ↓เพื่อเปิดเมนูและเลือกตัวเลือกที่คุณต้องการ โปรดทราบว่าOptionกุญแจจะทำให้ตัวเลือกเมนูต่างๆมีอยู่ใน "เมนูสถานะ" บางส่วน
โน้ตFn+ Ctrl+ F2จะเปิดใช้งานไอคอนเมนู Apple ทางด้านซ้ายมือ จากนั้นRight Arrow →จะให้คุณเข้าถึงเมนูแอปพลิเคชัน ตัวเลือกเหล่านี้มีอยู่ในการตั้งค่าระบบ >> แป้นพิมพ์ >> ทางลัด :: แป้นพิมพ์:
ขึ้นอยู่กับว่าคุณตั้งค่าฟังก์ชั่นคีย์ไว้Fnอย่างไร
ใน macOS Sierra คุณสามารถใช้ Siri เพื่อช่วยในเรื่องนี้ เรียกใช้ Siri ด้วยแป้นพิมพ์ลัดที่คุณเลือกจากการตั้งค่าระบบ >> Siri :: แป้นพิมพ์ลัดตัวอย่างเช่นOption+Spacebar
... จากนั้นพูดว่า "เปิดใช้งาน Keyboard Viewer"
... และ voila:
น่าเสียดายที่ Siri จะไม่ปิดตัวแสดงแป้นพิมพ์หรือจะCommand⌘+w
คุณสามารถทำทุกอย่างโดย Automator:
ส่วนต่อไปคือการปิดแป้นพิมพ์:
เลือก "อื่น ๆ " และไปที่ไฟล์ KeyboardViewer ใน / ระบบ / ห้องสมุด / วิธีการป้อนข้อมูล
บันทึกด้วยชื่อเช่น "ออกจากแป้นพิมพ์" ทดสอบมัน
ตอนนี้คุณจะมีสองไฟล์สำหรับเปิดหนึ่งสำหรับปิด
เพียงคุณเชื่อมโยงปุ่มเมาส์ของคุณเพื่อเปิดไฟล์สองไฟล์นี้!
ตัวอย่างเช่นฉันกำลังใช้ Microsoft Bluetooth Notebook Mouse 5000 และมัน
ทำงานได้ดีสำหรับฉันใน 10.9.1
การตรวจสอบกิจกรรม KeyboardViewer.app เปิดตัวจาก
ค้นหาสถานที่: / ระบบ / Library / วิธีการอินพุต
การใช้งานปกติ: เปิดจากแถบเมนูปิดจากการเลื่อนเมาส์เพื่อดูปุ่มหน้าต่างซึ่งสามารถคลิก(x)ปุ่มปิด ต้องการเปิดใช้งานแถบเมนูแผงการตั้งค่าระบบ , แป้นพิมพ์ , แป้นพิมพ์แท็บเลือกแสดงแป้นพิมพ์และผู้ชม Emoji ในแถบเมนู
แอปเพล็ต KeyboardViewer แสดงพฤติกรรมที่ จำกัด
สามารถบันทึกสคริปต์ Automator ต่อไปนี้เป็นแอปพลิเคชั่นเพื่อเปิด KeyboardViewer.app ด้วยการคลิกเพียงครั้งเดียว(การตรวจสอบกิจกรรมยังแสดงกิจกรรมที่เปิดปิดนี้) และทำงานได้ดีเมื่ออยู่ใน Dock
Automator: ใหม่ , แอปพลิเคชั่น , รัน AppleScript , บันทึกสคริปต์นี้
-- 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
ขออภัยนี่ไม่ได้เพิ่มแป้นพิมพ์ลัด อย่างไรก็ตามมันมีวิธีแก้ไขปัญหาเพียงคลิกเดียว อาจมีวิธีการเพิ่มแป้นพิมพ์ลัดโดยใช้ Automator สคริปต์ทางลัดทั่วไปมีลักษณะดังนี้ (แต่ไม่แน่ใจว่าจะรวมอย่างไร)
tell application "System Events"
set application "KeyboardViewer" to keystroke "K" using control down
end tell
(macOS Sierra 10.12.6 บน MP 6,1)