OS X Comando do terminal para alterar os temas de cores

16

Existe um comando que pode ser usado para alterar o esquema de cores do Terminal do Mac OS X? Eu gosto da ideia de poder mudar as cores dependendo dos scripts que eu executo. Até agora estou apenas mudando a cor do meu prompt bash com o PS1, o que é bom, mas não tão perceptível quanto eu gostaria.

    
por satur9nine 12.09.2010 / 03:10

3 respostas

18

Dependendo do que <<> exatamente você deseja realizar, aqui estão algumas ideias no AppleScript usando seus estilos de Terminal. Eles são mais robustos que tput , porque isso é redefinido por prompts coloridos. etc (pelo menos para mim).

Isso define todas as guias que executam o Python (nenhum servidor SSH disponível para teste agora) para o Homebrew, as outras para o Ocean:

tell application "Terminal"
    repeat with w from 1 to count windows
        repeat with t from 1 to count tabs of window w
            if processes of tab t of window w contains "Python" then
                set current settings of tab t of window w to (first settings set whose name is "Homebrew")
            else
                set current settings of tab t of window w to (first settings set whose name is "Ocean")
            end if
        end repeat
    end repeat
end tell

salve como script e corra como osascript Name.scpt sempre que quiser recolorir seus shells (é claro que você pode incluir isso como um script de shell ou algo assim).

Se você quiser exibir todos os processos de longa duração de maneira diferente, use a seguinte condição:

if busy of tab t of window w is true then

Você também pode definir o estilo de uma única guia, manualmente selecionada:

on run argv
    tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run

Execute assim:

osascript StyleTerm.scpt 3 Homebrew

- > A terceira aba da janela do Terminal frontal obtém o estilo Homebrew!

Se você quiser modificar as janelas de plano de fundo, substitua "janela da frente" por uma expressão entre parênteses, como logo após "tab". Se você sempre quiser modificar a "guia atual" selecionada, use selected tab em vez de tab (item 1 of argv as number) .

Adicione o seguinte ao seu .bash_profile se a primeira solução for trabalho manual demais para você:

PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

Agora ele é executado antes de cada prompt (único problema: não depois de iniciar algo, ou seja, ssh . Mas este tópico não é sobre truques bash extravagantes, de qualquer forma. Este é apenas um ponteiro.)

    
por 12.11.2010 / 00:27
4

Seus scripts podem usar o comando tput para definir cores de maneira portátil. Tente o seguinte script e você verá o terminal claro para um fundo ciano escuro com algum texto ciano brilhante.

#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World

Você pode ver mais informações sobre isso em man 5 terminfo na seção chamada "Manuseio de cores".

Você pode fazer as mesmas coisas ecoando as seqüências de escape que seu terminal reconhece diretamente. Será mais rápido, mas pode não funcionar usando outro programa de terminal. Muitos deles reconhecem seqüências xterm e aqui está como o script acima seria como usá-las.

#!/bin/bash
printf "3[48;5;6m"  # or "3[46m"
printf "3[H3[2J" # your system's clear command does something similar
printf "3[38;5;14m" # or "3[96m"
echo Hello World

Há mais informações sobre seqüências de controle xterm aqui .

    
por 12.09.2010 / 06:10
1

Você pode usar o applescript para dar a cada novo terminal um tema aleatório.

Edite seu .bash_profile e adicione este comando

osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

Se você obtiver o mesmo terminal de tema aleatório, poderá sempre acessar ⌘I e configurá-lo manualmente.

Isso é mais útil se você tiver vários temas de terminal com aparência diferente. Existem muitos sites para isso, se você olhar em volta.

    
por 20.04.2017 / 11:57