DEV Community

Cover image for Limpe o Terminal de forma Like a Pro
Marcos Oliveira
Marcos Oliveira

Posted on

Limpe o Terminal de forma Like a Pro

O sclide é uma implementação de um efeito de wipe para terminais. Ele desenha uma linha horizontal que atravessa a tela, acompanhada por um rastro de quatro níveis de sombreamento. Em seguida, quando solicitado, utiliza o mesmo efeito para limpar o terminal progressivamente, linha por linha.

O projeto foi desenvolvido para ser pequeno, direto e fácil de integrar a outros programas em C++.

Principais recursos:

  • Cores RGB de 24 bits: personalize as cores da linha e do rastro usando valores RGB ou códigos hexadecimais.
  • Rastro com quatro níveis: utiliza os caracteres █, ▓, ▒ e ░ para criar um gradiente visual.
  • Velocidade configurável: controle o intervalo entre as etapas da animação.
  • Limpeza animada: apague o conteúdo do terminal com uma transição vertical.
  • Personalização dos caracteres: substitua os símbolos utilizados no rastro.
  • Implementação enxuta: não depende de bibliotecas externas e pré-calcula as sequências de animação para reduzir o trabalho durante a renderização.

Em funcionamento:

sclide


Instalação

O sclide é distribuído como código-fonte C++, e sua instalação consiste basicamente em obter o arquivo sclide.cpp e incorporá-lo ao seu projeto. Não é necessário instalar uma biblioteca adicional.

Windows

O caminho recomendado é utilizar o WSL (Windows Subsystem for Linux), pois o projeto utiliza chamadas POSIX para consultar as dimensões do terminal e escrever a saída.

1. Instale o WSL, caso ainda não esteja disponível, pelo PowerShell executado como administrador:

wsl --install
Enter fullscreen mode Exit fullscreen mode

2. Abra a distribuição Linux instalada e instale as ferramentas de compilação:

sudo apt update
sudo apt install git g++ build-essential
Enter fullscreen mode Exit fullscreen mode

3. Clone o repositório:

git clone https://github.com/intriXlabs/sclide.git
cd sclide
Enter fullscreen mode Exit fullscreen mode

4. Copie o arquivo sclide.cpp para o diretório do seu projeto C++ e siga o exemplo de uso apresentado na próxima seção.

Você também pode compilar projetos C++ nativamente no Windows com outras ferramentas, mas o funcionamento do sclide nesse ambiente não é garantido pelo projeto original.

macOS

No macOS, você pode utilizar o Clang fornecido pelas ferramentas de linha de comando da Apple.

1. Instale as ferramentas de desenvolvimento, se necessário:

xcode-select --install
Enter fullscreen mode Exit fullscreen mode

2. Clone o repositório:

git clone https://github.com/intriXlabs/sclide.git
cd sclide
Enter fullscreen mode Exit fullscreen mode

3. Copie o arquivo sclide.cpp para o diretório do seu projeto.

4. Compile sua aplicação utilizando clang++ ou g++, com suporte a C++11 ou superior.

GNU/Linux

Em distribuições baseadas no Debian ou Ubuntu, instale o Git e o compilador:

sudo apt update
sudo apt install git g++
Enter fullscreen mode Exit fullscreen mode

Depois, obtenha o código-fonte:

git clone https://github.com/intriXlabs/sclide.git
cd sclide
Enter fullscreen mode Exit fullscreen mode

Copie sclide.cpp para o seu projeto e compile a aplicação conforme o exemplo a seguir.

Em outras distribuições, instale o compilador C++ e o Git usando o gerenciador de pacotes correspondente.

Primeiros passos

A API do sclide é simples: crie um objeto, configure as cores e a velocidade e chame clean() para executar a animação.

Crie um arquivo chamado main.cpp no mesmo diretório de sclide.cpp:

#include "sclide.cpp"

int main(){
    // Define a linha inicial da animação.
    sclide wipe(5);

    // Cor principal: verde-água.
    wipe.setSclideColor("#00FFAA");

    // Cor para a qual o rastro irá desaparecer.
    wipe.setShadeDegradingColor("#001111");

    // Tempo entre as etapas, em segundos.
    wipe.setSpeed(0.05);

    // Executa a animação e limpa o terminal.
    wipe.clean();

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

Compile o programa no terminal:

g++ -O3 -std=c++11 main.cpp -o exemplo
Enter fullscreen mode Exit fullscreen mode

Execute no macOS ou GNU/Linux:

./exemplo
Enter fullscreen mode Exit fullscreen mode

No Windows, execute o binário dentro do ambiente WSL:

./exemplo
Enter fullscreen mode Exit fullscreen mode

O resultado é uma linha animada com um rastro colorido, seguida pela limpeza progressiva da tela. Como clean() apaga o conteúdo do terminal, execute o exemplo em uma sessão de teste.

Personalizando a animação

O sclide disponibiliza métodos para ajustar o efeito durante a execução.

Método Finalidade
setSclideColor() Define a cor principal da linha.
setShadeDegradingColor() Define a cor final do gradiente.
resetSclideColor() Restaura a cor principal branca.
setSpeed() Ajusta o intervalo entre as etapas.
changeShades() Substitui os quatro caracteres do rastro.
clean() Executa a animação e limpa o terminal.

As cores podem ser configuradas com códigos hexadecimais, como "#FF6600", ou com componentes RGB. Para criar diferentes estilos, experimente combinar uma cor principal vibrante com uma cor de degradação escura ou próxima da cor de fundo do terminal.


Para mais informações acesse: o repositório

Top comments (0)