Abra o Terminal com abas predefinidas

1

Existe alguma maneira de abrir o Terminal com guias predefinidas? Eu tenho 5 caminhos mais comuns que eu costumo usar e eu quero que o Terminal abra com esses caminhos abertos em diferentes guias. Eu acho que isso deve ser AppleScript, mas eu não tenho experiência suficiente para escrevê-lo. Você pode me ajudar?

Obrigado.

    
por Ilia Kukharev 06.12.2017 / 08:31

2 respostas

1

nm, esta é a resposta:

tell application "Terminal"
    activate
    do script "cd %path1%"
    tell application "Terminal" to set custom title of tab 1 of front window to "Name 1"
    tell application "System Events" to keystroke "t" using command down
    delay 0.05
    do script "cd %path2%" in window 1
    tell application "Terminal" to set custom title of tab 1 of front window to "Name 2"
end tell

Isso abrirá o Terminal com o Caminho 1 e o Nome da Guia 1 e mais uma guia com o Caminho 2 e o Nome da Guia 2

    
por 06.12.2017 / 08:45
0

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:

  1. Crie as guias desejadas. cd de cada guia no local desejado (ou execute qualquer comando nas guias que você deseja).
  2. 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 .
  3. Agora eles vão. Você pode salvar vários grupos de janelas e acessá-los no menu Janela escolhendo Abrir grupo de janelas .
  4. 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 .

    
por 20.12.2017 / 00:57