Создайте новое пространство с помощью сочетания клавиш

Я знаю, что вы можете сделать это из управления полетами, щелкнув, и в «Клавиатура» нет ярлыка.

Есть ли способы сделать это с помощью сторонней программы или Applescript?

введите описание изображения здесь

введите описание изображения здесь

Очень полезный вопрос для моего рабочего процесса. Я также хотел бы знать о вашем фоне рабочего стола!
Рад, что вопрос понравился :) Вот ссылка на обои somethingpeach.com/wp-content/uploads/2014/06/…

Ответы (3)

Обновление: этот метод работает в OS X 10.11 и более ранних версиях, по крайней мере, до OS X 10.8 (не проверял его на чем-то более старом, чем OS X 10.8), но больше не работает так, как закодировано в macOS 10.12 из-за значительных изменений в Mission Control, сделанных Apple. .


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


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 и выберите Сервис .

  • Установить: служба не получает входных данных ни в одном приложении.

  • Добавьте действие « Выполнить AppleScript » или « Выполнить сценарий оболочки » .

  • Добавьте соответствующий код для целевого действия .

  • Сохраните службу как, например: Добавить новый рабочий стол

  • Назначьте сочетание клавиш для Службы в Системных настройках .

Примечание. Вам придется назначить последовательность клавиш, которая не используется нигде в Системе или в Finder , если вы выберете любое приложение в Сервисе .

Я тестировал это с помощью: ⌃⌥⌘D (Control-Option-Command-D)

Спасибо, это сработало отлично. Как вы думаете, вы могли бы сделать второй скрипт для удаления пробелов?
@Jonathan, добавление рабочего стола - это своего рода кладж, программно, для начала и возможно, потому что есть AXButton с AXDescription «добавить рабочий стол», который можно щелкнуть, однако AXButton (ы) в Mission Control с AXTitle, например « Рабочий стол 2", хотя у него есть закрывающий элемент (круг с топором в верхнем левом углу кнопки), он не адресуется так же, как нет кнопки «удалить рабочий стол». Так что я действительно не знаю простого способа удалить один программно, извините.
Это имеет смысл. Спасибо, что нашли время, чтобы объяснить мне это
Я пробовал это в macOS (10.12.1) и не повезло. Он открывает Mission Control на 0,5 секунды, но кнопка «Новый рабочий стол» не нажимается.
@portOdin, если вы посмотрите на теги на OP, вы увидите el-capitan, и это то, под чем это было протестировано, и оно там работает. Каждый выпуск ОС вызывает свои проблемы, а также ломает код , который работал в предыдущих версиях ОС. Когда у меня будет минутка, я попробую это под macOS Sierra и посмотрю, смогу ли я заставить его работать там.
@user3439894 user3439894 Да, я просто комментировал на случай, если у кого-то есть ответ для MacOS. Я не думал о создании отдельного вопроса; нужно ли мне? Спасибо, но я ценю помощь.

Хорошо, используя запись 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 как «Новый рабочий стол».)

при запуске {ввод, параметры}

сделать сценарий оболочки «открыть -a« Управление полетами »»

задержка 0,5

скажите приложению «Системные события» щелкнуть (каждую кнопку, чье значение атрибута «AXDescription» равно «добавить рабочий стол») группы 2 группы 1 группы 1 процесса «Док»

задержка 0,5

сообщите приложению "Системные события" код ключа 53

возврат ввода

конец пробега

Затем нам просто нужно создать второй рабочий процесс как службу, используя действие «Запустить приложение» и сохранить его как «Новый_рабочий стол».

Последние шаги — добавить «New Desktop.App» в «Системные настройки»> «Безопасность и конфиденциальность»> «Специальные возможности».

Затем добавьте сочетание клавиш в «Системные настройки» > «Клавиатура» > «Ярлыки» > «Службы» > «Общие» для рабочего процесса New_Desktop.workflow.