go/pkg/display/docs/overview.md
Snider 4e02d5bc97 refactor: bring external packages home and restructure
- Imported packages from separate repos:
  - github.com/Snider/config -> pkg/config
  - github.com/Snider/display -> pkg/display
  - github.com/Snider/help -> pkg/help
  - github.com/Snider/i18n -> pkg/i18n
  - github.com/Snider/updater -> pkg/updater
- Moved core code from root to pkg/core
- Flattened nested package structures
- Updated all import paths to github.com/Snider/Core/pkg/*
- Added Display interface to Core
- Updated go.work for workspace modules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:30:43 +00:00

1.4 KiB

Overview

The display module is a core component responsible for the visual presentation and system integration of the application. It leverages Wails v3 to create a desktop application backend in Go and Angular for the frontend user interface.

Architecture

The project consists of two main parts:

  1. Backend (Go): Handles window management, system tray integration, application menus, and communication with the frontend. It is located in the root directory and packaged as a Go module.
  2. Frontend (Angular): Provides the user interface. It is located in the ui/ directory and is built as a custom element that interacts with the backend.

Key Components

Display Service (display)

The core service that manages the application lifecycle. It wraps the Wails application instance and exposes methods to:

  • Open and configure windows.
  • Manage the system tray.
  • Show system dialogs (e.g., environment info).

System Integration

  • Menu: A standard application menu (File, Edit, View, etc.) is constructed in menu.go.
  • System Tray: A system tray icon and menu are configured in tray.go, allowing quick access to common actions like showing/hiding windows or viewing environment info.

Demo CLI

A command-line interface (cmd/demo-cli) is provided to run and test the display module. It includes a serve command for web-based development.