Заставьте OSX прослушивать определенную последовательность клавиш и выполнить [что угодно]

0

Вот пример использования.

Я использую текст, расширитель текста. У него есть горячая клавиша для отображения списка сохраненных расширений текста. Я хочу убрать необходимость ручного нажатия этой горячей клавиши. Поэтому мне нужно, чтобы моя ОС смотрела на мою клавиатуру и автоматически вызывала эту горячую клавишу, когда была найдена определенная последовательность.

Ex.

  1. Моя горячая клавиша для отображения списка расширений текста CMD+ SHIFT++S

  2. Все мои ярлыки расширения начинаются с ;;

  3. Когда я пишу или пресс ;;, я хочу , чтобы мой OS послать CMD+ SHIFT+ Sк системе, и , таким образом , вызывая список расширителя.

Это возможно как-то?

Джонатан Вингер-Ланг
источник
Вам нужно открыть это окно, чтобы иметь возможность использовать триггеры, или это просто напоминание о том, какую последовательность клавиш использовать?
Тетсуджин
Это всего лишь напоминание.
Джонатан Вингер-Ланг
ах, хорошо - тогда моя идея не сработает. Я собирался предложить перенести их в системные префы> клавиатура> текст.
Tetsujin
1
Я вижу, мне нужны расширенные возможности выделенного расширителя текста. У меня есть одно работающее решение, я отправил его как ответ на вопрос, если вы хотите посмотреть.
Джонатан Вингер-Ланг,

Ответы:

0

Ладно, после некоторого возни у меня есть немного хака, чтобы заставить его работать на меня, и это работает примерно так.

1) Я скачал кейлоггер с открытым исходным кодом и изменил его, чтобы ничего не регистрировать, просто слушать.

...  
char * currentKey = convertKeyCode(keyCode);  
char * target = ";";  
if( currentKey == previousKey && currentKey == target ){
...

2) Когда он увидит, что я нажал две клавиши, я выбрал его, он вызовет скрипт Apple, как это

...
system("echo \"tell application \\\"System Events\\\" to keystroke \\\"S\\\" using {command down, shift down}\" | osascript");
...

Какой ключ у меня есть в тексте.

Это работает довольно хорошо, но я буду ждать более точных решений, прежде чем я задам вопрос в качестве ответа.

Джонатан Вингер-Ланг
источник