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

10

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

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

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

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

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

Ответы:

1

Обновление: этот метод работает в 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)

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

Хорошо, используя запись 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
Andrusoid
источник
Проверенный ответ не сработал для меня, но этот сработал =)
Брайан Шермерхорн,
1

Да, это работает, вроде. Проблема заключается в том, что решение 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.

Andrusoid
источник