Em primeiro lugar, alguns pontos sobre o seu AppleScript apenas para fins de aprendizado:
- Você não precisa ter
tell
comandos dentro de um bloco tell
se ambos enviarem comandos para o mesmo objeto (ou seja, Terminal ). O bloco tell
é suficiente; omite as instruções tell
dentro dele que endereçam Terminal (mas mantenha aquela que endereça Eventos do Sistema ), e os comandos serão enviados para Terminal
- Eu não usaria os pressionamentos de teclas do System Events para criar novas guias. Por um lado, os atalhos podem mudar, ou o aplicativo pode perder o foco por algum motivo e perder o evento de pressionamento de tecla. Na verdade, se você não segmentar seu
do script
na Janela 1 e, em vez disso, deixá-lo sem destino, Terminal seguirá em frente e criará uma nova guia vontade própria. Isso elimina a necessidade de algumas linhas de código.
Então, se tudo o que você precisava fazer era criar várias guias em locais diferentes, seria mais fácil:
-- Launch terminal without creating any windows
launch
-- Create a bunch of tabs at desired path locations
-- then clear the window to neaten its appearance
do script "cd ~; clear"
do script "cd /; clear"
do script "cd /Applications; clear"
(Você pode colocar tudo isso em um bloco tell
segmentando Terminal ; eu simplesmente configurei Editor de Script para fazer isso por mim na barra de navegação).
Para definir os títulos de cada guia, depois de criar as guias de uma só vez, é necessário ter cuidado para ter certeza de que segmentaremos o objeto janela correto de cada guia. Estas linhas adicionais de código seguem imediatamente as anteriores, e nomeiam as abas "Aba 1", "Aba 2" , etc. na ordem em que surgiram:
-- Get window ("tab") id's and sort numerically
-- with the help of bash functionality
set IDs to id of every window
set AppleScript's text item delimiters to " "
do shell script ({¬
"echo", ¬
IDs, ¬
"| tr ' ' '\n'", ¬
"| sort -n", ¬
"| tr '\n' ' '"} as string)
set IDs to the words of result
-- Give each tab a new custom title
repeat with n from 1 to number of windows
set custom title of tab 1 of ¬
window id (item n in IDs) to ¬
{"Tab", n} as string
end repeat
Grupos de janelas
Em segundo lugar - e, o mais importante, como isso realmente responde diretamente à sua pergunta original - não é necessário que o AppleScript atinja o que você deseja. O Terminal tem uma maneira interna de salvar um grupo de janelas (abas) e, em seguida, reinicia essas janelas toda vez que você inicia o Terminal . Veja como:
- Crie as guias desejadas.
cd
de cada guia no local desejado (ou execute qualquer comando nas guias que você deseja).
- No menu Janela , escolha Salvar o Windows como grupo ... . Na caixa de diálogo que aparece, insira o nome desse grupo e escolha se deseja que esse conjunto de janelas seja aberto sempre que você iniciar Terminal .
- Agora eles vão. Você pode salvar vários grupos de janelas e acessá-los no menu Janela escolhendo Abrir grupo de janelas .
- Para gerenciar esses grupos salvos, vá para Preferências > Grupos de Janelas , onde você pode deletar aqueles que você não quer mais.
A desvantagem disso é que os títulos das guias não são definidos automaticamente, embora você possa predefinir quais informações cada título da guia contém, em geral, em Preferências > Perfis > Janela / Aba .