Làm cách nào để hiển thị hoặc ẩn Trình xem bàn phím bằng phím tắt?


19

Tôi muốn hiển thị và ẩn Trình xem bàn phím bằng phím tắt.

  • Có cách nào để hiển thị Trình xem Bàn phím qua phím tắt không?
  • Có cách nào để tự động hiển thị Trình xem Bàn phím khi tôi chuyển sang một ngôn ngữ cụ thể không?

Giải pháp lý tưởng là gán phím tắt cho Apple Script hiển thị Bàn phím.
duci9y

Câu trả lời:


15

Khởi chạy Trình xem Bàn phím với Dịch vụ (Được cải tiến)

Bạn có thể khởi chạy Trình xem bàn phím bằng phím tắt bằng cách sử dụng chức năng Automator và OS X Services.

Chương trình Trình xem Bàn phím hoạt động tại /System/Library/Input Methods/KeyboardViewer.app(trong các phiên bản trước Lion, có thể là tại /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Bạn mở nó bằng một phím nóng bằng cách sử dụng Automator để tạo một dịch vụ launcher đơn giản.

  1. Mở Automator và chọn Service làm loại tài liệu mới của bạn.
  2. Đặt các tùy chọn (ở đầu khu vực dòng công việc) thành "Dịch vụ không nhận đầu vào trong bất kỳ ứng dụng nào ".
  3. Thêm hành động Run AppleScript vào quy trình công việc của bạn và thay thế văn bản bằng các dòng sau:

    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. Lưu với một cái tên như "Open Keyboard Viewer", sau đó mở Keyboard Preferences đến Phím tắt tab. Chọn Dịch vụ trong ngăn bên trái và cuộn xuống phía dưới, nơi bạn sẽ thấy tên Dịch vụ của mình trong Phần Chung.
  5. Hãy chắc chắn rằng hộp được chọn để kích hoạt nó, sau đó chọn nó và nhấp vào thêm phím tắt để đặt một phím nóng.
  6. Sau khi đặt phím nóng, hãy mở menu Dịch vụ trong bất kỳ ứng dụng nào (ví dụ: Finder> Dịch vụ), sau đó đóng nó. Vì một số lý do, phím nóng của tôi không hoạt động cho đến khi tôi làm điều này.

Một vài lưu ý:

  • Tập lệnh yêu cầu bạn kiểm tra hộp Bật quyền truy cập cho các thiết bị trợ giúp trong ngăn tùy chọn Truy cập chung .
  • Đóng cửa sổ Trình xem Bàn phím không thực sự thoát khỏi ứng dụng và như Lri chỉ ra, đó có thể là một chút tài nguyên, do đó, repeatvòng lặp sẽ kiểm tra cứ sau 5 giây nếu Trình xem Bàn phím có bất kỳ cửa sổ đang mở nào và nếu không, hãy thoát khỏi quá trình.
  • Nếu bạn đang chạy HĐH trước Lion, bạn có thể cần thay thế các phiên bản KeyboardViewerbằng KeyboardViewerServer. Tôi không có bất cứ điều gì trước Lion để kiểm tra điều này (nếu ai đó có thể báo cáo lại trong các bình luận, điều đó sẽ rất tuyệt.
  • Vì tập lệnh lặp cho đến khi Trình xem Bàn phím được đóng, biểu tượng bánh răng quay Tự động sẽ hiển thị trên thanh menu cho đến khi đóng.

ĐÚNG! Điều này là chính xác cho những gì tôi tìm kiếm. Tôi quen thuộc với trình tự động hóa và kịch bản shell, chỉ cần một gợi ý. Cảm ơn bạn rất nhiều ... :)
jm666

Tôi đã cập nhật điều này bằng cách sử dụng một Applescript chạy kiểm tra xem cửa sổ đã bị đóng chưa, và nếu vậy, hãy thoát khỏi quy trình, để tránh tiêu hao hiệu năng. Bất cứ ai quan tâm đến phiên bản dựa trên bash cũ đều có thể tìm thấy bản sửa đổi ở đây .
kẻ cướp

Với sửa đổi tối thiểu, kịch bản này Toggles người xem. Thay thế "end if" bằng "other" và di chuyển "other if" đến cuối.
AdamAL

Giải pháp tuyệt vời. Tuy nhiên, mục trình đơn "Hiển thị Trình xem Bàn phím" không biết rằng trình xem bàn phím đang chạy? Vì vậy, loại phá vỡ mục menu này nếu bạn tình cờ sử dụng cả hai.
Matt Sephton

/System/Library/Input Methods/KeyboardViewer.appkhông tồn tại trên Catalina. Tôi đã mở tất cả các ứng dụng /System/Library/Input Methodsvà không ai trong số họ mở trình xem bàn phím. Có ý kiến ​​gì không?
Kerndog73

4

Các Scripts tắm Plugin của Quicksilver cung cấp chức năng này bằng cách cung cấp Hiển thị bàn phím Viewer.scpt .

Ngoài ra, khi bạn tạo Trình kích hoạt Quicksilver để hiển thị Trình xem bàn phím.scpt với hành động Chạy , thì bạn sẽ nhận được phím nóng Trình xem bàn phím toàn cầu.

Đây là nguồn của kịch bản:

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

Nếu KeyboardViewer được mở bằng AppleScript hoặc với openvà cửa sổ chính bị đóng, quá trình Trình xem bàn phím vẫn mở và tiếp tục sử dụng khoảng 0-20% CPU.


Tôi thường không thích cài đặt ứng dụng của bên thứ 3 cho những thứ đơn giản có thể viết được, nhưng đây là trường hợp ngoại lệ . :) Cảm ơn bạn rất nhiều, làm việc như một cơ duyên. ;)
jm666

Nếu bạn muốn tránh phần mềm của bên thứ 3, tôi chỉ đăng một câu trả lời sẽ làm điều tương tự với phần mềm tích hợp.
kẻ cướp

sry mach, @CanuckSkier đã đăng một câu trả lời tôi thích gì hơn, vì vậy chấp nhận câu trả lời của anh ấy. +1 dù sao cho QuickSilver. ;)
jm666

4

Vui mừng tôi tìm thấy chủ đề này. Dựa trên các câu trả lời ở trên, tôi đã tạo một tập lệnh mở rộng Alfred bật tắt Trình xem bàn phím.

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

Nó cung cấp một từ khóa alfred "kv" để bật và tắt Trình xem bàn phím, bằng cách chạy các applescript sau:

-- 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

Tôi đã để lại một triển khai thay thế nhận xét, trong trường hợp tôi gặp vấn đề về hiệu suất mà nó có nghĩa là phải tránh.


1
Liên kết bị hỏng. Bạn sẽ thật tử tế khi đăng nó một lần nữa. Đây là một quy trình làm việc Alfred tôi sẽ sử dụng.
ddaa

Ở đây chúng tôi đi, tôi đã thực hiện lại nó (và cũng đã thêm một phím tắt Cmd + Alt + Ctrl + Shift + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton

3

Tôi đã tìm thấy một cách thông qua BetterTouchTool để làm như sau:

  • Kích hoạt Trình xem Bàn phím bằng phím tắt
  • Đóng trình xem bàn phím bằng một phím tắt khác
  • Chuyển đổi Trình xem bàn phím bằng một phím tắt (không cần hai lần trước)
  • Tôi cũng đã tải lên AppleScript để thuận tiện

Nền tảng: rMBP Mountain Lion OSX 10.8


Kích hoạt Trình xem Bàn phím bằng phím tắt

  • Khởi chạy BetterTouchTool
  • Thêm phím tắt
  • Thêm hành động được xác định trước >> Mở ứng dụng / Tệp / Tập lệnh ...
  • Điều hướng đến Macintosh HD / Hệ thống / Thư viện / Phương thức nhập /
  • Chọn KeyboardViewer

Bây giờ bạn có một phím tắt để kích hoạt trình xem mà không cần một tập lệnh bổ sung.

TUY NHIÊN, tôi nhận thấy rằng việc nhấn nút X màu đỏ không thực sự thoát khỏi ứng dụng, điều đó có nghĩa là trình xem bàn phím sẽ chỉ được kích hoạt một lần. Vì vậy, bạn cần phải tạo một kịch bản để thoát khỏi chương trình.

Để khắc phục sự cố này:


Đóng Trình xem bàn phím bằng một phím tắt khác

  • Máy tự động mở
  • Chọn Ứng dụng làm loại tài liệu
  • Thêm RunAppleScript
  • Nơi nó nói (* Kịch bản của bạn ở đây *), thay thế nó bằng quit application "KeyboardViewer"
  • Biên dịch và lưu như trong tài liệu hoặc bất cứ nơi nào bạn muốn (Tôi đã di chuyển nó đến cùng vị trí với KeyboardViewer)
  • Mở BetterTouchTool
  • Thêm phím tắt
  • Thêm hành động được xác định trước >> Mở ứng dụng / Tệp / Tập lệnh ...
  • Xác định vị trí tệp ứng dụng bạn vừa lưu

Bây giờ bạn có một cách để thoát khỏi trình xem KeyBoard ngay khi được kích hoạt. Sử dụng nó thay vì nút X màu đỏ. Cho đến khi tôi tìm ra lý do tại sao trình xem bàn phím không thoát hoàn toàn khi bạn nhấn nút X, đây sẽ là giải pháp của bạn.

BIÊN TẬP

Tôi đã tìm ra một cách để TOGGLE trình xem bàn phím !!


XEM TỪ KHÓA XEM BÀN PHÍM bằng một phím tắt

cùng quy trình như trước nhưng mã được thay đổi:

  • Máy tự động mở
  • Chọn Ứng dụng làm loại tài liệu
  • Thêm RunAppleScript
  • Nơi nó nói (* Kịch bản của bạn ở đây *), thay thế nó bằng
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Biên dịch và lưu như trong tài liệu hoặc bất cứ nơi nào bạn muốn (Tôi đã di chuyển nó đến cùng vị trí với KeyboardViewer)
  • Mở BetterTouchTool
  • Thêm phím tắt
  • Thêm hành động được xác định trước >> Mở ứng dụng / Tệp / Tập lệnh ...
  • Xác định vị trí tệp ứng dụng bạn vừa lưu

Bây giờ Trình xem Bàn phím đã được bật và bạn thậm chí không cần gán nhiều phím tắt!


Liên kết cho AppleScript

Tôi đã tải lên ứng dụng trực tuyến để truy cập nhanh hơn thay vì thực hiện toàn bộ các bước mã hóa ở trên (chỉ kích hoạt ứng dụng này thông qua BetterTouchTool) Tuy nhiên, vì tôi không phải là nhà xuất bản được xác định, hệ điều hành của bạn có thể chặn chạy ứng dụng này, tùy thuộc vào sở thích bảo mật của bạn. Vì vậy, nếu bạn không muốn chạy ứng dụng từ các nhà xuất bản không xác định, chỉ cần làm theo các bước trên để tạo ứng dụng của riêng bạn!

Liên kết đến tệp: https://www.box.com/s/e2461c91e30e0af025e7


Hy vọng nó sẽ giúp được ai vì nó đã giúp tôi :)


tuyệt diệu!! Tôi nghĩ rằng việc thêm ứng dụng keyboardViewer trực tiếp vào chỉ mục launchbar của mình sẽ là sự thay thế tốt cho mục đích của tôi, nhưng không có tùy chọn nào để đóng kbv khi nó chạy! vì vậy, bạn không thể gọi nó lần thứ hai - kỳ lạ. dù sao kịch bản của bạn làm việc một điều trị! (Tôi phải lưu nó dưới dạng tập lệnh / chỉ chạy để nó hoạt động với tôi.) Tx!
ptim

@memeLab Vui mừng nó làm việc cho bạn :)
Render

3

Điều này cũng sẽ hoạt động sau khi cửa sổ chính đã được đóng bằng cách nhấp vào nút đóng:

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

Nếu Trình xem bàn phím được mở bằng AppleScript hoặc open -a KeyboardViewervà cửa sổ chính bị đóng, quá trình vẫn mở và tiếp tục sử dụng khoảng 0-15% CPU. Điều đó không xảy ra khi chọn Hiển thị Trình xem Bàn phím từ menu nhập. Vì vậy, một lựa chọn tốt hơn có thể là nhấp vào mục 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

Cả hai tập lệnh đều yêu cầu quyền truy cập cho các thiết bị trợ giúp được bật trong ngăn tùy chọn trợ năng.


2

Đây không phải là một phím tắt một nét, mà là một giải pháp "không di chuyển" là Fn+ Ctrl+ F8để đặt tiêu điểm vào các biểu tượng " Menu trạng thái " ở bên phải của thanh menu. ( Mục 4 )

nhập mô tả hình ảnh ở đây

Mũi tên sẽ điều hướng bạn đến biểu tượng Tùy chọn bàn phím và tùy chọn Hiển thị / Ẩn. Khi bạn nhập Fn+ Ctrl+ F8biểu tượng ở phía bên trái xa nhất của biểu tượng "Menu trạng thái" ở nửa bên phải của thanh menu sẽ được tô sáng. Khi nó được chọn, sau đó sử dụng Right Arrow →để điều hướng đến cái bạn muốn. Sử dụng Down Arrow ↓để mở menu và chọn tùy chọn bạn muốn. Lưu ý rằng Optionphím này sẽ cung cấp các tùy chọn menu khác nhau trong một số "menu trạng thái".

nhập mô tả hình ảnh ở đây

Lưu ý, Fn+ Ctrl+ F2sẽ kích hoạt biểu tượng menu Apple ở phía bên tay trái. Từ đó Right Arrow →sẽ cung cấp cho bạn quyền truy cập vào menu Ứng dụng. Các tùy chọn này khả dụng trong Tùy chọn hệ thống >> Bàn phím >> Phím tắt :: Bàn phím:

nhập mô tả hình ảnh ở đây

Tùy thuộc vào cách bạn có các phím chức năng được cấu hình, Fntùy chọn.

nhập mô tả hình ảnh ở đây

Trong macOS Sierra, bạn cũng có thể sử dụng Siri để trợ giúp việc này. Gọi Siri với bất kỳ phím tắt nào bạn chọn từ Tùy chọn hệ thống >> Siri :: Phím tắt, ví dụ Option+Spacebar

nhập mô tả hình ảnh ở đây

... sau đó nói "Bật trình xem bàn phím"

nhập mô tả hình ảnh ở đây

...và Voila:

nhập mô tả hình ảnh ở đây

Thật không may, Siri sẽ không đóng Trình xem bàn phím, cũng sẽ không Command⌘+w


0

bạn có thể làm mọi thứ bằng Automator:

  1. mở Automator và chọn "Ứng dụng"
  2. trong đầu Thư viện tìm "Khởi chạy ứng dụng", nhấp đúp vào nó
  3. chọn "khác" và điều hướng đến tệp KeyboardViewer trong / Hệ thống / Thư viện / Phương thức nhập
  4. Lưu với một tên như "bắt đầu bàn phím". kiểm tra nó

phần tiếp theo là đóng bàn phím:

  1. mở Automator và chọn "Ứng dụng"
  2. ở đầu Thư viện tìm "Thoát ứng dụng", nhấp đúp vào nó
  3. chọn "khác" và điều hướng đến tệp KeyboardViewer trong / Hệ thống / Thư viện / Phương thức nhập

  4. Lưu với một tên như "thoát khỏi bàn phím". kiểm tra nó

bây giờ bạn sẽ có hai tệp một để mở, một cho đóng.

tất cả những gì bạn cần là liên kết các nút chuột để khởi chạy hai tệp này!

ví dụ: tôi đang sử dụng Microsoft Bluetooth Notebook Mouse 5000 và nó

làm việc tuyệt vời cho tôi trong 10.9.1


0

Trình giám sát hoạt động, KeyboardViewer.app khởi chạy từ

Vị trí tìm kiếm: / Hệ thống / Thư viện / Phương thức nhập / KeyboardViewer.app .

Sử dụng bình thường: mở từ Thanh Menu , đóng từ chuột di chuột để xem các nút cửa sổ nơi có thể nhấp vào nút đóng (x) . Để bật bảng Menu Bar , Tùy chọn hệ thống , Bàn phím , tab Bàn phím , chọn Hiển thị Bàn phím và Trình xem biểu tượng cảm xúc trong thanh menu .

Applet KeyboardViewer thể hiện hành vi hạn chế.

  1. Cửa sổ Applet không đáp ứng với -Q , -W .
  2. Kì lạ thay, khi mở từ thư mục Phương thức nhập , thì Trình giám sát hoạt động cho thấy các applet vẫn chạy sau khi cửa sổ của nó bị đóng.
  3. Trình tự động AppleScript hiển thị bên dưới chạy chậm trong nền, các dịch vụ bàn phím mất vài giây để đăng ký các hành động mở và đóng trong Activity Monitor.
  4. Kịch bản phím tắt được hiển thị bên dưới chạy không có lỗi nhưng hệ thống dường như bỏ qua.
  5. Ứng dụng Thoát khỏi Sierra Automator sẽ không đóng KeyboardViewer.app

Tập lệnh Automator sau đây có thể được lưu dưới dạng một ứng dụng để đóng KeyboardViewer.app bằng một cú nhấp chuột (Activity Monitor cũng hiển thị hoạt động đóng mở này) và nó hoạt động tốt khi được đặt trong Dock.

Máy tự động: Mới , Ứng dụng , Chạy AppleScript , lưu tập lệnh này

-- 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

Thật không may, điều này không thêm một phím tắt. Tuy nhiên, nó cung cấp một cách giải quyết bằng một cú nhấp chuột. Có thể có một số cách để thêm phím tắt bằng Automator. Một kịch bản phím tắt chung trông giống như thế này (nhưng không chắc chắn cách kết hợp).

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

(macOS Sierra 10.12.6 trên MP 6,1)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.