# Tech HUD Menu

Changelog:
1.0.3 fixed click detection in sub categories

Standalone Vala/GTK3 application launcher and menu for Linux desktops.

## Features

- Futuristic HUD interface drawn with Cairo vector paths, with selectable color themes and nine border styles.
- Application lists discovered from installed desktop entries, grouped into alphabetized categories and subcategories.
- Persistent Favourites tab. Right-click an application to add or remove it.
- Scrollable application grid with application icons and descriptions.
- Optional keep-open behavior after launching an application, plus draggable, sticky, and above/below window-layer controls.
- Adjustable UI scale and window transparency, plus per-language label overrides for categories, options, themes, and border styles.
- Spin-button controls for window width and height, plus bottom-right mouse resizing; the two-column app grid adapts to the selected width.
- Remembers the menu's screen position between launches on X11; Wayland compositors choose the initial position.

## Requirements

- Vala compiler (`valac`)
- GTK 3 development files
- Cairo and PangoCairo development files
- GIO and GIO Unix development files
- GNU gettext tools (`msgfmt`)

The menu discovers installed applications from the system's desktop entries and uses the active GTK icon theme. It has no bundled runtime assets. Its settings are stored in `~/.config/tech_hud/menu.conf`.
Mouse dragging and resizing use GTK's native window-manager or Wayland-compositor requests. Wayland does not allow applications to save or restore a window's screen position.
Category labels come from installed XDG desktop-directory entries and system translation catalogs. Labels without a system translation fall back to English.
Use **Options > Edit Labels...** to customize category, options, context-menu, theme, and border-style labels per language; leave an entry blank to use its system-provided label.

The default build includes German, French, Russian, Simplified Chinese, Japanese, Spanish, Swahili, Italian, Brazilian Portuguese, Dutch, and Korean catalogs. Build only selected catalogs with `make LANGUAGES="de fr ru"` or build them separately with `make translations`.
Translation sources are maintained as `.po` files in `po/`; Make compiles them into runtime `.mo` catalogs.

## Build and Run

```sh
make
./tech_hud_menu
```

The existing `compile_tech_hud_menu.sh` script can also build the executable from this directory.

To install the executable:

```sh
make install
```

Set `PREFIX` or `DESTDIR` to change the install location.
