- 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>
1.4 KiB
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:
- 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.
- 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.