Pergunta

Boa noite,

Eu sou muito novo no Unix, então talvez este mini projeto seja muito ambicioso. Esperando que alguém pudesse apontar na direção certa.

Trabalhando em um cubículo e não consigo ver como é a luz lá fora. Em geral, uso um terminal amarelo pela manhã (ensolarado) e um preto/verde depois das 3:00 (noite).

O que eu gostaria de fazer (em parte apenas para praticar minha festa). É escrever um script que, às 3:00, mude a cor de todos os meus terminais. Se isso funcionar, talvez eu os faça mudar a cada hora ou algo assim. Isso seria seguro? Isso é possível?

Aqui estão algumas das minhas especificações: Solaris 10 Bash Shell Gnome

Estou olhando para isso agora:Alterar o tema do terminal GNOME programaticamente

Foi útil?

Solução

Se eu estivesse fazendo isso, eu começaria com Prompt_Command. O Bash executará esse script antes de exibir um prompt.

Você tem algumas opções. Você pode ter um script dentro de Prompt_Command:

PROMPT_COMMAND='if [ is_morning ]; then echo "MORNING_COLORS'; else echo "EVENING_COLORS"; fi

Ou você pode ter Prompt_Command executar um comando externo (que também pode ser um script bash ou você pode usar um idioma diferente, se quisesse) fazer todo o trabalho lá:

PROMPT_COMMAND=/path/to/setcolor_timeofday

O único buraco que vejo é que, se você tiver um programa em execução quando o tempo mudar (por exemplo, usando tail -f Para assistir a um arquivo), o plano de fundo não mudará até que você retorne ao prompt do bash.

Outras dicas

Modificar o primeiro plano da concha e as cores de fundo via PS1 em Bash será a mais fácil, como apontado por outros aqui. A abordagem de R Samuel Klatchko com Prompt_Command é provavelmente a mais versátil. No entanto, isso tem desvantagens. O Bash só pode usar as cores de fundo 'monótona' e suas cores de primeiro plano/plano de fundo podem ser substituídas por qualquer aplicativo. A modificação do seu tema do terminal GNOME programaticamente, especialmente em tempo real, será muito mais difícil, mas produzirá resultados muito mais bonitos.

Usar Cron, é o agendador de empregos do Unix. E defina -o para executar um comando que muda .bashrc como na pergunta que você vinculou. O problema é que ele funcionará apenas para novos terminais, se você tiver aberto, não os alterará.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top