Регистрация глобальных горячих клавиш на Mac?

#python #ruby #cocoa #hotkeys #global-hotkey

#python #ruby #cocoa #горячие клавиши #global-горячая клавиша

Вопрос:

Я пишу приложение с Titanium Developer, которое позволяет мне использовать Javascript, PHP, Ruby и Python. Он предоставляет API с определенными стандартными функциями, которые могут понадобиться, но которых не хватает, — это глобальные события.

Теперь я хочу назначить глобальные горячие клавиши своему приложению и в значительной степени остаюсь в неведении. Прямо сейчас я ориентируюсь только на MAC, но не могу найти никаких решений для Python или Ruby. Я нашел следующую библиотеку для Cocoa, которая, похоже, способна это сделать:

https://github.com/secondgear/SGHotKeysLib

Но у меня нулевой опыт работы с Objective C, и я не хочу тратить время на его изучение только для реализации одной единственной вещи.

Кто-нибудь может посоветовать мне одно из следующих действий..

  • Как зарегистрировать глобальные горячие клавиши на Mac с помощью Python
  • Как зарегистрировать глобальные горячие клавиши на Mac с помощью Ruby
  • Как использовать SGHotkeysLib для создания демона командной строки, который мог бы направлять глобальные горячие клавиши в другие приложения (я мог бы использовать инструмент командной строки, чтобы, например, зарегистрировать, что Command K запускает определенное приложение).

Или, возможно, какие-либо другие идеи, о которых я не подумал?

Просто указатель в правильном направлении был бы очень признателен.

Заранее спасибо.

Комментарии:

1. «любые другие ide» > изучить Objective-C? Это действительно не так сложно…

2. Я в этом не сомневаюсь, но на данный момент у меня нет времени изучать Objective-C.

Ответ №1:

Возможно, вы сможете использовать Python для прямого вызова PyObjC, который является интерфейсом Python для Objective-C. Поиск по «горячей клавише pyobjc» выдал этот документ. (Тот, что на официальном PyObjC, по какой-то причине сломан.)

Комментарии:

1. Спасибо jathanism, конкретный скрипт, на который вы ссылались, к сожалению, несовместим со Snow Leopard, но я посмотрю, что еще я могу найти при вызове PyObjC через Python.