Na postagem anterior: Crie facilmente Letras estilosas para o Terminal, nós mostramos como gerar nomes com fontes renderizadas no terminal.
Nesse artigo mostraremos como você pode combinar a informação anterior e criar animações no terminal.
Isso pode ser interessante para você adicionar a algum aplicativo linha de comando ou TUI que você pretende ou está desenvolvendo, para ser a introdução ou o help e até mesmo como menu de inicialização.
Veja os efeitos em um dos vídeos abaixo e logo após os vídeo há um tutorial explicando todo passo a passo de como você reproduzir na sua máquina!
@terminalroot Crie Efeitos no Terminal LIKE A PRO Para mais informações acesse o link na descrição: https://terminalroot.com.br/2024/05/crie-efeitos-no-terminal-like-a-pro.html
♬ original sound - terminalroot
Esses efeitos trata-se de um aplicativo escrito em Python chamado: TerminalTextEffects, ou somente: TTE!
TerminalTextEffects (TTE) é um mecanismo de efeitos visuais de terminal. O TTE pode ser instalado como um aplicativo de sistema para produzir efeitos em seu terminal ou como uma biblioteca Python para ativar efeitos em seus scripts/aplicativos Python.
O TTE inclui uma biblioteca crescente de efeitos integrados que mostram os recursos do mecanismo. Esses recursos incluem:
Executa inline, preservando o estado do terminal e o fluxo de trabalho.
Para instalar basta usar o Pip com o seguinte comando:
pip install terminaltexteffects
Se seu sistema apresentar alguma crítica durante a instalação é porque provavelmente ele adota algumas políticas de segurança e você precisa instalar em um ambiente virtual.
Para isso rode os comandos abaixo na ordem:
mkdir -p ~/.local/bin/venv
python -m venv ~/.local/bin/venv
. ~/.local/bin/venv/bin/activate
Agora sim instale no ambiente virtual que foi iniciado:
pip install terminaltexteffects
Continue nesse terminal aberto se você ativou o venv
nele para rodar os efeitos!
Existem diversos efeitos, o EFEITO 1 dos vídeos acima é o Beams. Para reproduzi-lo crie um arquivo Python, exemplo: beams.py
e insira o conteúdo abaixo:
from terminaltexteffects.effects.effect_beams import Beams
effect = Beams("YourTextHere")
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Onde há a string: YourTextHere é onde você deve pôr o texto que você quer animar. Para rodar:
python beams.py
Se quiser usar arquivos com textos prontos e maiores, por exemplo, o arquivo que eu usei nos vídeos:
vim conteudo.txt
┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
│T│ │e│ │r│ │m│ │i│ │n│ │a│ │l│ │R│ │o│ │o│ │t│
└─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
───────────────────────────────────────────────────
┌───┬───┬───┬───┬───┬───┐
│ ﭱ⠀│ ﭰ⠀│ ﳑ⠀│ ⠀│ ⠀│ ⠀│
└───┴───┴───┴───┴───┴───┘
---------------------------------------------------
GameDev │ GUI │ TUI │ Web │ Libraries
Um pouco de muito sobre C++, Programação,
Desenvolvimento de Games e Web.
Ⓣ Ⓔ Ⓡ Ⓡ ⓞ ⓞ
───────────── ◆ ─────────────
O site Terminal Root é voltado para o ensino de
programação e desenvolvimento de software. Ele
oferece tutoriais, artigos e dicas sobre várias
linguagens e tecnologias, como C++, JavaScript,
C, Java, Go, Python, Assembly, CMake além de
ferramentas para desenvolvimento de jogos: SFML,
Raylib, SDL2 e entre outros. Além disso, o site
cobre tópicos também de desenvolvimento web, e
apresenta recomendações de livros sobre diversas
áreas da programação. Terminal Root também
disponibiliza cursos online e mantém um blog com
atualizações frequentes sobre novas ferramentas
e técnicas no campo da programação.
┌────────────────────────────────────────────────────┐
│ ┌┬┐ ┌┐ ┌┐ ┌┐┐ ∙ ┌┐ ┌┐ ┐ ┌┐ ┌┐ ┌┐ ┌┬┐ │
│ │ ├ ││ │ │ │ ││ ├│ │ ││ ││ ││ │ │
│ │ ││ │┘ │ │ │ ││ ││ ││ │┘ ││ ││ │ │
│ ┘ └┘ ┘┘ ┘ ┘ ┘ ┘┘ ┘┘ └┘ ┘┘ └┘ └┘ ┘ │
└────────────────────────────────────────────────────┘
E altere o código do arquivo beams.py
para que carregue esse arquivo dinamicamente, deixe-o assim:
from terminaltexteffects.effects.effect_beams import Beams
with open('./conteudo.txt', 'r') as file:
conteudo = file.read()
effect = Beams(conteudo)
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Agora rode novamente e veja o EFEITO 1 idêntico ao do vídeo!
Os outros 2 efeitos são: BouncyBalls(EFEITO 2) e Binarypath(EFEITO 3).
Existem muito mais efeitos no endereço oficial do TTE.
Veja também: