Crie um novo espaço usando um atalho de teclado

10

Estou ciente de que você pode fazer isso no Controle da Missão clicando e não há atalho disponível em 'Teclado'.

Existem maneiras de fazer isso usando um programa de terceiros ou o Applescript?

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Jonathan De Wet
fonte
Pergunta muito útil para o meu fluxo de trabalho. Também gostaria de saber sobre o plano de fundo da sua área de trabalho!
Qcom 28/02
1
Que bom que você gostou da pergunta :) Aqui está um link para o papel de parede somethingpeach.com/wp-content/uploads/2014/06/...
Jonathan De Wet

Respostas:

1

Atualização: Este método funciona no OS X 10.11 e versões anteriores, pelo menos para o OS X 10.8 (não o testou em nada mais antigo que o OS X 10.8), mas não funciona mais como codificado no macOS 10.12 devido a alterações significativas no Controle de Missão feitas pela Apple .


Para adicionar programaticamente uma área de trabalho no controle de missão, o código abaixo pode ser usado como um script AppleScript ou BASH em conjunto com um serviço Automator usando Run AppleScript ou Run Shell Script, respectivamente, e uma sequência de teclas atribuída ao serviço nas preferências do sistema no teclado Atalhos.


Código 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

Código do script 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'

  • Abra o Automator e selecione Serviço .

  • Conjunto: o serviço não recebe entrada em nenhum aplicativo

  • Adicione uma ação Executar AppleScript ou Executar ação de script do shell .

  • Adicione o código apropriado para a ação de destino .

  • Salve o serviço como, por exemplo: Adicionar nova área de trabalho

  • Atribua um atalho de teclado para o serviço em Preferências do sistema .

Nota: Você terá que atribuir uma sequência de teclas que não seja usada em nenhum outro local do Sistema ou no Finder se você escolher sobre qualquer aplicativo no Serviço .

Eu testei com: ⌃⌥⌘D (Control-Option-Command-D)

user3439894
fonte
Graças isso funcionou muito bem. Você acha que poderia criar um segundo script para excluir espaços?
Jonathan De Wet
@ Jonathan, Adicionar uma área de trabalho é uma espécie de elogio, programaticamente, para começar e possível, porque existe um AXButton com o AXDescription de "adicionar área de trabalho" que pode ser clicado, no entanto, no (s) AXButton (s) sob Controle da missão com o AXTitle, por exemplo " A área de trabalho 2 ", embora tenha um elemento fechado (um círculo com um machado, no canto superior esquerdo do botão), não pode ser endereçada da mesma maneira que não há um botão" remover área de trabalho ". Então, eu realmente não conheço uma maneira fácil de remover uma programaticamente, desculpe.
usar o seguinte comando
Isso faz sentido. Obrigado por tomar o tempo para explicar isso para mim
Jonathan De Wet
Eu tentei isso no macOS (10.12.1) e não tive sorte. Ele abre o Controle da Missão por 0,5 segundos, mas o botão Nova Área de Trabalho não é pressionado.
Domi91c
2
@ user3439894 Sim, eu estava apenas comentando caso alguém tivesse uma resposta para o MacOS. Eu não tinha pensado em criar uma pergunta separada; Eu devo? Obrigado, porém, agradeço a ajuda.
domi91c
2

OK, usando a gravação do Automator, fiz funcionar com uma versão revisada do AppleScript na outra resposta.

Substitua "do grupo 1" por "do grupo 2 do grupo 1 do grupo 1 de":

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
Andrusóide
fonte
A resposta verificada não funcionou para mim, mas este fez =)
Brian Schermerhorn
1

Sim, isso funciona, mais ou menos. O problema é que a solução do user3439894 acaba gerando um erro se o aplicativo ativo (Finder, textedit etc.) não tiver sido adicionado ao painel Acessibilidade de Segurança e Privacidade.

Para contornar isso, precisamos de dois fluxos de trabalho, o serviço de user3439894 com a lista de grupos atualizada como um aplicativo Automator e um segundo serviço Automator para iniciá-lo.

O aplicativo Automator (salvo em / Applications como "New Desktop".)

na execução {input, parameters}

do shell script "open -a 'Mission Control'"

atraso 0,5

diga ao aplicativo "System Events" para clicar (cada botão cujo valor do atributo "AXDescription" é "add desktop") do grupo 2 do grupo 1 do grupo 1 do processo "Dock"

atraso 0,5

informe o aplicativo "System Events" ao código-chave 53

retornar entrada

corrida final

Depois, precisamos criar o segundo fluxo de trabalho como serviço, usando a ação "Iniciar aplicativo" e salvá-lo como "Novo_Desktop"

Os últimos passos são para adicionar “Novo Desktop.App” a Preferências do Sistema> Segurança e Privacidade> Acessibilidade

Em seguida, adicione o atalho do teclado em Preferências do sistema> Teclado> Atalhos> Serviços> Geral para o novo fluxo de trabalho do desktop.

Andrusóide
fonte