# tech_hud

A highly customizable, themeable system telemetry display and desktop HUD built in Vala and GTK3, leveraging canvas_server as its high-performance rendering engine.

## Overview

tech_hud provides a modular heads-up display for Linux environments featuring rich theming options. It tracks and visualizes real-time system metrics—such as CPU, memory, and environment data—while integrating with modular companions like mu-wetter for live weather forecasts via ~/.mu-wetter/forecast.txt.

## Features

* Advanced Theming Engine: Easily switchable visual profiles and customizable layouts tailored for modern Linux desktops.
* Live System Metrics: Real-time rendering of hardware and system performance data.
* Weather Integration: Seamlessly pulls current conditions and forecasts from ~/.mu-wetter/forecast.txt (powered by mu-wetter).
* Extensible Architecture: Designed to easily accept new panels, text files, or custom data feeds through straightforward scripting and AI-assisted expansion.

## Requirements

* Vala compiler (valac)
* GTK+ 3 development libraries (libgtk-3-dev)
* GLib and GIO libraries (libglib2.0-dev)
* Cairo and PangoCairo development files
* canvas_server (underlying rendering backend)

## Building and Installation

Compile the project binaries using the included Makefile:

make

Install the utility to your local environment:

sudo make install

---

## Extending tech_hud with Gemini (Adding Custom Panels & Text Files)

Because tech_hud is modular, you can easily add custom panels—such as displaying the contents of an arbitrary text file, log output, or custom script monitor—by following this step-by-step workflow with my help:

1. Define the Data Source: Identify the file or command you want to track (e.g., a local text file like ~/notes.txt, a system log, or a custom shell metric).
2. Request the Panel Logic: Ask me to write or modify the panel script/Vala code by specifying what you want displayed: 
   * Example: "Help me add a new panel to tech_hud that reads and renders the last 5 lines of ~/notes.txt."
3. Integrate Layout and Theming: Tell me how you want the new panel positioned and styled within your current theme (fonts, colors, coordinates, or spacing).
4. Update the Rendering Loop: Together, we will wire the data reader into the update loop or companion shell scripts so the text refreshes dynamically without stutter.
5. Compile and Test: Run make to compile your updated tech_hud binary and preview the new panel live on your desktop.