Eu tenho costume de criar vários aplicativos cli e TUI que usam bastante recursos de cores ANSI para o terminal. Geralmente preciso escolher a cor no GIMP ou no rgb-tui e depois montar e testar pra ver como ficará.
Pensando em automatizar essa etapa de um desenvolvimento, crie o hexter
, pois com ele eu obtenha a sintaxe de uma cor hexadecimal para o terminal (ANSI RGB) de forma rápida e fácil.
E resolvi criar um utilitário via linha de comando e também uma API para integrar aos meus projetos. E decidi disponibiilizar para quem tiver interesse.
O hexter
foi criado com C++, logo para construir e instalar você precisa ter instalado no seu sistema:
Depois é só clonar, construir e instalar:
git clone https://github.com/terroo/hexter
cd hexter
cmake . -B build
cmake --build build
sudo cmake --install build
O uso é simples e intuitivo, basta rodar o comando hexter
e informar a cor em hexadecimal com os sem tralha(#
):
Quando usar com tralha, proteja a cor entre as duplas ou simples.
hexter '#a6e22e'
hexter fd6389
Se tiver um arquivo com seu tema de cores basta fazer um loop e onter todas de uma só vez, exemplo:
cat theme.txt
#121212
#3a3b3f
#5f5f5f
#afafaf
#eeeeee
#ffffff
#d7d7ff
#7cdce7
#84afd7
#d7af87
#2ec27e
#fd6389
for i in $(cat theme.txt); do hexter "$i"; done
Saída:
Esse é o tema
Você também pode usar a API facilmente para obter a cor hexadecimal basta incluir o cabeçalho e usar hexter::color
, ainda há a hexter::off
para desligar uma cor, exemplo:
#include <print>
#include "hexter-color.hpp"
int main(){
std::println("{}Hello, World!{}", hexter::color("#84afd7"), hexter::off);
}
Se quiser instalar a API para incluir mais facilmente direto no seu sistema, rode, por exemplo:
sudo wget -q \
https://raw.githubusercontent.com/terroo/hexter/refs/heads/main/hexter-color.hpp \
-O /usr/local/include/hexter-color.hpp
E basta usar assim:
#include <hexter-color.hpp>
, pois é um header-only.
Para mais informações, enviar PR e/ou relatar issues, acesse o repositório: https://github.com/terroo/hexter.