e4fdd0199d
- Gráficos de línea pixel-perfect: ANTIALIAS_NONE + ancho 1px + coords ancladas al centro del pixel, para trazos nítidos sobre la rejilla. - Reloj + fecha (formato europeo) en una franja superior común a todas las pestañas; la barra de pestañas y el contenido bajan para hacerle sitio. - Nueva pestaña Procesos: nº de procesos (total + en ejecución), hilos, carga 1/5/15 min y tablas TOP CPU / RAM / I/O. Cada fila muestra el PID (clicable, abre htop -p) separado del nombre. - Nueva pestaña Devices: almacenamiento (lsblk sin loops), interfaces de red físicas e IP, y dispositivos USB (lsusb). - Docker con detalle: contador running/total y, por contenedor, nombre + imagen + estado abreviado (Up 33h / Up 2d) coloreado según salud. - Fix: el header de Docker se dibujaba con baseline directa y solapaba la barra de pestañas; ahora usa el mismo offset que el resto de paneles. - metric.sh: helpers nproc_count/running, nthreads, load_avg, top_cpu/ram/io, disk_list, usb_list, net_ifaces, docker_list, docker_count. - Ventana 545 -> 575 px de alto. app.md a v0.2.0.
90 lines
4.0 KiB
Markdown
90 lines
4.0 KiB
Markdown
---
|
|
name: conky_widget
|
|
lang: lua
|
|
domain: infra
|
|
version: 0.2.0
|
|
description: "Widget de escritorio Conky con 5 pestañas clickeables (Sistema / Red / Docker / Procesos / Devices), reloj permanente, gráficos de línea pixel-perfect y botones que lanzan herramientas de análisis de red."
|
|
tags: [conky, widget, desktop, monitoring, network, processes, devices, lua, launcher-buttons]
|
|
uses_functions: []
|
|
uses_types: []
|
|
framework: "conky"
|
|
entry_point: "conky.conf"
|
|
dir_path: "apps/conky_widget"
|
|
repo_url: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/dataforge/conky_widget"
|
|
e2e_checks:
|
|
- id: lint_install
|
|
cmd: "bash -n install.sh"
|
|
timeout_s: 10
|
|
- id: lint_launch
|
|
cmd: "bash -n lua/launch.sh"
|
|
timeout_s: 10
|
|
- id: lua_parse
|
|
cmd: "luac -p lua/widget.lua 2>/dev/null || lua -e \"assert(loadfile('lua/widget.lua'))\""
|
|
timeout_s: 10
|
|
severity: warning
|
|
---
|
|
|
|
# conky_widget
|
|
|
|
Visualizador de escritorio basado en Conky (1.19, X11 + Lua + Cairo) que muestra
|
|
el estado del PC en vivo en la esquina superior derecha del monitor primario.
|
|
El contenido está organizado en tres pestañas clickeables y, en la pestaña de
|
|
red, incluye botones que abren herramientas de análisis de paquetes.
|
|
|
|
Una franja superior con **reloj + fecha** (formato europeo) es común a todas las
|
|
pestañas. Los gráficos de línea se dibujan sin antialiasing y con las coordenadas
|
|
ancladas al pixel (`pixel-perfect`).
|
|
|
|
## Pestañas
|
|
|
|
| Pestaña | Contenido |
|
|
|---|---|
|
|
| **Sistema** | Gráficos de área en vivo: CPU, RAM, CPU temp, GPU, GPU temp, VRAM, disco I/O y red, más barras de uso de los cuatro discos. Las series se vuelven rojas al superar su umbral. |
|
|
| **Red** | Velocidad de bajada/subida de `enp5s0`, gráfico histórico en vivo, paquetes/s por protocolo, top hosts remotos, conexiones establecidas, total descargado/subido, y botones [Wireshark] [ntopng] [nethogs]. |
|
|
| **Docker** | Contador `running/total` y, por contenedor, nombre + imagen + estado abreviado (`Up 33h`, `Up 2d`), coloreado según salud. |
|
|
| **Procesos** | Nº de procesos (total + en ejecución), hilos, carga 1/5/15 min, y tablas TOP CPU / TOP RAM / TOP I/O. Cada fila muestra el PID (clicable: abre `htop -p <pid>`) y el nombre. |
|
|
| **Devices** | Dispositivos de almacenamiento (`lsblk`, sin loops), interfaces de red físicas con su IP, y dispositivos USB (`lsusb`). |
|
|
|
|
## Cómo funciona
|
|
|
|
- `conky.conf` posiciona la ventana (`own_window_type = normal` para recibir
|
|
clics) y delega todo el dibujo a `lua/widget.lua`.
|
|
- `lua/widget.lua` dibuja con Cairo en el hook `conky_draw` y gestiona los clics
|
|
en el hook `conky_mouse`: la barra superior cambia de pestaña y los botones de
|
|
la pestaña Red lanzan la herramienta correspondiente.
|
|
- `lua/launch.sh` comprueba si el binario existe antes de lanzarlo; si falta,
|
|
muestra un `notify-send` indicando el paquete a instalar.
|
|
|
|
## Instalación
|
|
|
|
```bash
|
|
cd apps/conky_widget
|
|
./install.sh # symlink en ~/.config/conky + autostart XFCE
|
|
conky -c ~/.config/conky/conky_widget/conky.conf & # arrancar ahora
|
|
```
|
|
|
|
Parar: `pkill -f conky_widget/conky.conf`
|
|
|
|
## Configuración
|
|
|
|
- **Monitor**: editar `xinerama_head` en `conky.conf` (`0` = HDMI-0 primario,
|
|
`1` = DP-1).
|
|
- **Interfaz de red**: cambiar `NIF` al inicio de `lua/widget.lua`.
|
|
- **Botones**: editar la tabla `BTNS` en `lua/widget.lua` (etiqueta, binario a
|
|
comprobar, paquete apt y comando shell).
|
|
|
|
## Requisitos
|
|
|
|
- `conky` compilado con Lua bindings + Cairo (verificable con `conky --version`).
|
|
- Sesión X11 (en Wayland los clics y `own_window` no funcionan).
|
|
- Opcional para los botones: `wireshark`, `ntopng`, `nethogs`. Sin ellos el
|
|
widget funciona igual; los botones avisan de cómo instalarlos.
|
|
|
|
## Notas
|
|
|
|
- El botón Wireshark abre `/var/log/pktcap/cap.pcapng` (buffer rotativo de 10
|
|
min) si existe; en caso contrario abre Wireshark en vivo. Ese buffer lo genera
|
|
un servicio `dumpcap` aparte (pendiente de montar).
|
|
- El historial del gráfico de red se mantiene en memoria mientras Conky corre;
|
|
al reiniciar el widget se empieza de cero.
|