Я знаю, что вы можете сделать это из управления полетом, нажав, и в «Клавиатуре» нет ярлыка.
Есть ли способы сделать это с помощью сторонней программы или Applescript?
Я знаю, что вы можете сделать это из управления полетом, нажав, и в «Клавиатуре» нет ярлыка.
Есть ли способы сделать это с помощью сторонней программы или Applescript?
Ответы:
Обновление: этот метод работает в OS X 10.11 и более ранних версиях, по крайней мере, до OS X 10.8 (не тестировал его ни на чем более старом, чем OS X 10.8), но больше не работает, как написано в macOS 10.12, из-за значительных изменений в Mission Control, сделанных Apple ,
Чтобы программно добавить рабочий стол в Mission Control, приведенный ниже код можно использовать в качестве сценария AppleScript или BASH в сочетании со службой Automator с использованием соответственно запуска AppleScript или Run Shell Script и последовательности клавиш, назначенной службе в системных настройках на клавиатуре. Ссылки.
Код AppleScript:
do shell script "open -a 'Mission Control'"
delay 0.5
tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"
delay 0.5
tell application "System Events" to key code 53
Код сценария BASH:
#!/bin/bash
open -a 'Mission Control'
osascript -e 'delay 0.5' \
-e 'tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"' \
-e 'delay 0.5' \
-e 'tell application "System Events" to key code 53'
Откройте Automator и выберите Сервис .
Set: Сервис не получает входных данных ни в одном приложении
Добавить либо Run AppleScript или Run Shell Script Action .
Добавьте соответствующий код для целевого действия .
Сохраните Сервис как, например: Добавить новый рабочий стол
Назначьте сочетание клавиш для Сервиса в Системных настройках .
Примечание. Вам нужно будет назначить последовательность клавиш, которая не используется в других местах в Системе или в Finder, если вы выберете любое приложение в Сервисе .
Я проверил это с помощью: ⌃⌥⌘D (Control-Option-Command-D)
Хорошо, используя запись Automator, я заставил ее работать с пересмотренной версией AppleScript в другом ответе.
Заменить «группы 1» на «группы 2 группы 1 группы 1»:
on run {input, parameters}
do shell script "open -a 'Mission Control'"
delay 0.5
tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 2 of group 1 of group 1 of process "Dock"
delay 0.5
tell application "System Events" to key code 53
return input
end run
Да, это работает, вроде. Проблема заключается в том, что решение user3439894 приводит к выдаче ошибки, если активное приложение (Finder, textedit и т. Д.) Не было добавлено на панель Доступность для обеспечения безопасности и конфиденциальности.
Чтобы обойти это, нам нужны два рабочих процесса: служба user3439894 с обновленным списком групп в качестве приложения Automator и вторая служба Automator для его запуска.
Приложение Automator (сохранено в / Applications как «Новый рабочий стол».)
при запуске {вход, параметры}
сделать сценарий оболочки "open -a 'Управление полетом'"
задержка 0,5
сказать приложению «Системные события» нажать (каждая кнопка со значением атрибута «AXDescription» «добавить рабочий стол») группы 2 группы 1 группы 1 процесса «Док»
задержка 0,5
сообщить приложению «Системные события» к коду 53
обратный ввод
конец бега
Затем нам просто нужно создать второй рабочий процесс как сервис, используя действие «Запуск приложения» и сохранить его как «New_Desktop».
Последние шаги - добавить «New Desktop.App» в «Системные настройки»> «Безопасность и конфиденциальность»> «Специальные возможности».
Затем добавьте сочетание клавиш в «Системные настройки»> «Клавиатура»> «Ярлыки»> «Службы»> «Общие» для потока New_Desktop.work.