Я хотел бы отображать и скрывать средство просмотра клавиатуры с помощью ярлыка.
Вы можете запустить средство просмотра клавиатуры с помощью ярлыка, используя Automator и функциональные возможности служб OS X.
Программа Keyboard Viewer живет по адресу /System/Library/Input Methods/KeyboardViewer.app
(в версиях до Lion она может быть по адресу /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app
). Вы открываете его с помощью горячей клавиши, используя Automator для создания простой службы запуска.
Добавьте в рабочий процесс действие « Выполнить 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
. У меня нет ничего подходящего до Lion, чтобы проверить это (если бы кто-то еще мог сообщить в комментариях, это было бы здорово./System/Library/Input Methods/KeyboardViewer.app
не существует на Каталине. Я открыл все приложения, /System/Library/Input Methods
и ни одно из них не открыло программу просмотра клавиатуры. Есть идеи?Я нашел способ через 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
Надеюсь, это поможет кому-то, как это помогло мне :)
Рад, что нашел эту тему. Основываясь на приведенных выше ответах, я создал сценарий расширения Alfred, который переключает средство просмотра клавиатуры.
https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfreextension
Он предоставляет ключевое слово альфреда «kv», которое включает и выключает средство просмотра клавиатуры, запустив следующий сценарий Apple:
-- 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
Я оставил альтернативную реализацию закомментированной на случай, если у меня возникнут проблемы с производительностью, которых она должна была избежать.
Плагин Extra Scripts для Quicksilver предлагает эту функциональность, предоставляя Show Keyboard Viewer.scpt .
Кроме того, когда вы создаете Quicksilver Trigger для Show Keyboard Viewer.scpt с действием Run , вы получаете глобальную горячую клавишу Keyboard 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
, а главное окно закрыто, процесс Keyboard Viewer остается открытым и продолжает использовать около 0-20% ЦП.
В Каталине он мертв — больше нет приложения под названием KeyboardViewer.
Вместо этого используйте параметры специальных возможностей в Системных настройках и отключите все остальное, чтобы ярлык параметров специальных возможностей (⌘ + ⎇ + F5) только включал и выключал клавиатуру специальных возможностей. Конечно, если вам нужны другие опции и увидеть клавиатуру, вы обречены. Спасибо, Apple!!
Это также будет работать после закрытия главного окна нажатием кнопки закрытия:
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
Если средство просмотра клавиатуры открыто с помощью AppleScript или open -a KeyboardViewer
главное окно закрыто, процесс остается открытым и продолжает использовать около 0-15% ЦП. Этого не происходит при выборе «Показать средство просмотра клавиатуры» в меню ввода. Поэтому лучшим вариантом может быть щелчок по пункту меню:
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
Оба сценария требуют, чтобы доступ к вспомогательным устройствам был включен на панели настроек специальных возможностей.
Выбранный ответ не работает на Каталине. Это делает:
activate application "System Preferences"
tell application "System Preferences"
reveal anchor "Virtual_Keyboard" in pane id "com.apple.preference.universalaccess"
end tell
tell application "System Events"
tell process "System Preferences"
delay 1
set theCheckbox to checkbox "Enable Accessibility Keyboard" of tab group 1 of group 1 of window 1
if (value of theCheckbox as boolean) then
click theCheckbox
key code 36 -- Handle the confirmation dialog
else
click theCheckbox
end if
delay 1
end tell
end tell
tell application "System Preferences" to quit
Это не ярлык с одним прикосновением, а решение «без мыши», 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
... затем скажите «Включить просмотр клавиатуры»
...и вуаля:
К сожалению, Siri не закроет средство просмотра клавиатуры и не закроет Command⌘+w
вы можете сделать все с помощью Automator:
следующая часть - закрыть клавиатуру:
выберите «другое» и перейдите к файлу KeyboardViewer в /System/Library/Input Methods.
Сохраните с именем, например, «Выйти из клавиатуры». Попробуй это.
теперь у вас будет два файла: один для открытия, другой для закрытия.
все, что вам нужно, это связать кнопки мыши, чтобы запустить эти два файла!
например, я использую Microsoft Bluetooth Notebook Mouse 5000, и она
отлично работает для меня в 10.9.1
Монитор активности, KeyboardViewer.app запускается из
Расположение Finder: /System/Library/Input Methods/KeyboardViewer.app .
Обычное использование: открыть из строки меню , закрыть при наведении мыши, чтобы просмотреть кнопки окна, где можно нажать кнопку (x) закрытия . Чтобы включить панель « Строка меню », « Системные настройки », « Клавиатура » , вкладку « Клавиатура », выберите « Показать клавиатуру и средства просмотра эмодзи» в строке меню .
Апплет KeyboardViewer демонстрирует ограничительное поведение.
Следующий скрипт Automator можно сохранить как приложение для открытия-закрытия KeyboardViewer.app одним щелчком мыши (Activity Monitor также показывает это открытие-закрытие), и он хорошо работает при размещении в Dock.
Автоматизатор: Создать , Приложение , Запустить 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)
Это не ярлык, но работает для меня. Сначала нажмите Показать средство просмотра клавиатуры. После того, как вы пойдете с мышью в угол, маленький треугольник показывает. Когда он будет готов, программа просмотра клавиатуры скроется. Следующее это показывает.
Вот небольшое видео об этом: https://dai.ly/x7t7x60
герцогство
болдник