Мне бы хотелось иметь следующие сочетания клавиш:
- Cmd+ PageUp= громкость вверх
- Cmd+ PageDown= уменьшение громкости
Я последовал заэти инструкции:
Создание скрипта AppleScript прошло успешно, но невозможно установить сочетание клавиш Cmd+ PageUpвСистемные настройки→Клавиатура→Ярлыки→Услуги.
Можно ли запустить скрипт AppleScript из~Библиотека/KeyBindings/DefaultKeyBindings.dict?
решение1
Это вполне осуществимо. Главное — создать службу из вашего AppleScript с помощью Automator.
- Запустите Automator и выберите Файл, Создать, а затем выберитеУслуга.
- Настройте службу на получение"нет ввода"от"любое приложение".
- В разделе «Действия» выберитеЗапустить AppleScriptи перетащите его в рабочую область справа.
- Скопируйте/вставьте ваш скрипт в редактор.
- Сохраните службу под соответствующим именем.
- Запустите Системные настройки, клавиатура и имя используемой вами службы станет доступно.
- Установите желаемый ярлык.
Единственным другим методом может быть использование Automator для создания службы, которая запускает скрипт bash, который будет вызывать ossascript your_script
. Я не уверен, как вы вызовете .dict
файл, чтобы получить то, что вы хотите.
решение2
Часто бывает заметная задержка перед запуском службы (или скрипта AppleScript, который не запущен как служба), а сочетания клавиш для служб недоступны в приложениях, не имеющих меню служб. Лучшим вариантом является использованиечастный.xmlкак это с карабином:
<?xml version="1.0"?>
<root>
<item>
<name>custom</name>
<identifier>custom</identifier>
<autogen>__KeyToKey__ KeyCode::PAGEUP, VK_COMMAND, ModifierFlag::NONE, KeyCode::VK_CONSUMERKEY_VOLUME_UP</autogen>
<autogen>__KeyToKey__ KeyCode::PAGEDOWN, VK_COMMAND, ModifierFlag::NONE, KeyCode::VK_CONSUMERKEY_VOLUME_DOWN</autogen>
</item>
</root>
, ModifierFlag::NONE
Например, без первой autogen
записи также изменится опция + команда + страница вверх на опция + увеличение громкости.
Чтобы изменять громкость с шагом в четверть такта, добавьте , ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L
перед </autogen>
.
Это сопоставляет правую опциональную клавишу с дополнительной клавишей-модификатором при удержании и с клавишей F19 при нажатии, и, например, делает так, что нажатие клавиши 0 на цифровой клавиатуре при удержании дополнительной клавиши-модификатора увеличивает громкость:
<?xml version="1.0"?>
<root>
<item>
<name>custom</name>
<identifier>custom</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::OPTION_R, KeyCode::VK_MODIFIER_EXTRA1, KeyCode::F19</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_1, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_BRIGHTNESS_DOWN</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_2, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_BRIGHTNESS_UP</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_6, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_PREV</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_7, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_PLAY</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_8, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_MUSIC_NEXT</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_9, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_VOLUME_DOWN, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
<autogen>__KeyToKey__ KeyCode::KEY_0, ModifierFlag::EXTRA1, KeyCode::VK_CONSUMERKEY_VOLUME_UP, ModifierFlag::OPTION_L | ModifierFlag::SHIFT_L</autogen>
</item>
</root>