Um monitor de CPU e RAM minimalista, transparente e flutuante, escrito em C com GTK3, feito para Linux (testado no Linux Mint 22.2 Cinnamon).
Exibe em tempo real o uso do processador e da memória no canto superior direito da tela principal — sem terminal, sem janelas visíveis e com inicialização automática.
| Distribuição | Versão mínima | Status |
|---|---|---|
| Linux Mint | 20 (Ulyana) | ✅ Suportado |
| Ubuntu | 20.04 (Focal Fossa) | ✅ Suportado |
| Debian | 11 (Bullseye) | |
| Fedora | 37+ | |
| Arch / Manjaro | Rolling | ✅ Suportado |
Execute este comando no terminal:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Hangell/monitoring/main/install.sh)"Copie somente o comando do bloco acima, sem a marcação de link [URL](URL).
As correções precisam estar publicadas no branch main para esse comando baixá-las.
Para instalar a partir de um clone local (incluindo suas alterações):
bash install.shO instalador usa o main.c local ou baixa o código do GitHub quando executado via
bash -c. Não execute com sudo: ele solicita elevação apenas para dependências.
Para instalar sem abrir o HUD, use MONITORING_NO_START=1 bash install.sh.
O script irá:
- Instalar dependências (
build-essential,libgtk-3-dev); - Compilar o binário em
~/.local/bin/monitoring; - Criar o atalho de inicialização em
~/.config/autostart/; - Executar o HUD automaticamente.
✅ Após isso, ele abrirá sozinho sempre que você iniciar o sistema.
Se quiser compilar manualmente:
sudo apt install build-essential libgtk-3-dev pkg-configgit clone https://github.com/Hangell/monitoring.git
cd monitoring
gcc main.c -o monitoring `pkg-config --cflags --libs gtk+-3.0`./monitoring &A janela aparecerá automaticamente no topo direito do monitor principal, mostrando CPU e RAM atualizados a cada segundo.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Hangell/monitoring/main/uninstall.sh)"Remove o binário, o autostart e encerra processos ativos do HUD.
| Configuração | Onde alterar | Valor padrão |
|---|---|---|
| Opacidade da janela | gtk_widget_set_opacity(ui.window, 0.85); |
0.85 |
| Margem da tela | ui.margin = 10; |
10 px |
| Fonte e cor do texto | bloco CSS (label { ... }) |
FiraCode Nerd Font, branco |
| Intervalo de atualização | g_timeout_add(1000, update_stats, &ui); |
1000 ms |
- Lê
/proc/state/proc/meminfodiretamente; - Atualiza a cada segundo via
g_timeout_add; - Usa
GTK_WINDOW_TYPE_HINT_DOCKpara manter-se sempre sobreposto; - Não consome foco nem interfere em janelas abertas;
- Mantém o uso mínimo de recursos (<15 MB RAM e <0.5% CPU).
- Mostrar uso e temperatura da GPU quando disponíveis
- Exibir temperatura da CPU
- Alternância automática Dark/Light Theme
- Barras animadas de uso
MIT © 2025 Rangel Hangell
Feito com 💙 e C puro no Linux Mint.
A temperatura da CPU vem de sensores identificados como CPU (coretemp,
k10temp, k8temp, zenpower, cpu_thermal) ou zonas térmicas de CPU.
A maior leitura válida desses sensores é exibida; sensores de discos e GPU
não são usados como temperatura da CPU. O sysfs fornece miligraus Celsius,
conforme a documentação do kernel.
Para NVIDIA, é necessário nvidia-smi do driver instalado. Uso e temperatura
são independentes: um campo N/A não descarta o outro. A primeira GPU NVIDIA
é consultada; como alternativa, o HUD procura uma placa DRM com métricas,
sem misturar leituras de placas diferentes. AMD e Intel dependem dos arquivos
expostos pelo driver em sysfs; frequência não é convertida em percentual de uso.
N/D indica leitura indisponível. O HUD exibe também a temperatura da GPU.
Validação de regressões (requer GCC, GTK3 development e Python 3):
python3 tests/check.py