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

6332
user8662

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

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

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

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

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

5

3 ответа на вопрос

8
Arjan

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

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

    при запуске  расскажите приложение "Сафари" активировать открыть место "http://superuser.com/" конец сказать обратный ввод конец бега

    enter image description here

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

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

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

  • Вместо перетаскивания действия «Запустить AppleScript» в рабочий процесс используйте «Запустить сценарий оболочки».
  • Оставьте Shell по умолчанию "/ bin / bash" и замените команду по умолчанию catна:
    открыть "http://superuser.com"
    или же
    открыть "/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и т . Д.
    • Префикс должен быть с любой комбинацией @для Command, ^для Ctrl, ~для Option и $для Shift.
    • Откройте Терминал. Если имя службы - 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, но я не эксперт ... Кто-нибудь?

AppleScript для открытия URL: `открытое местоположение" http://superuser.com "`. То же самое с путями к файлам, но с префиксом `file: //`, например, `open location 'file: /// Users / danielbeck / Desktop" `. Эта команда является частью * StandardAdditions * в библиотеке редактора AppleScript. И это, и * Системные события * полны действительно полезных вещей. Daniel Beck 13 лет назад 1
2
ashcatch

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

1
X-Istence

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

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