1.3 KiB
1.3 KiB
Overview
The display module is the Core GUI surface. It coordinates windows, menus, trays, dialogs, notifications, and WebSocket events through Wails v3 on the Go side and Angular in ui/ on the frontend side.
Architecture
The project consists of two main parts:
- Backend (Go): Handles window management, tray/menu setup, dialogs, notifications, layout persistence, and IPC dispatch.
- Frontend (Angular): Provides the user interface. It lives in
ui/and is built as a custom element that talks to the backend through the Wails runtime.
Key Components
Display Service (display)
The core service manages the application lifecycle and exposes declarative operations such as:
OpenWindow(window.Window{})CreateWindow(window.Window{Name: "editor", URL: "/#/editor"})SetWindowBounds("editor", 100, 200, 1280, 720)SaveLayout("coding")TileWindows(window.TileModeLeftRight, []string{"editor", "terminal"})ApplyWorkflowLayout(window.WorkflowCoding)
System Integration
- Menu: The application menu is constructed in
buildMenu()and dispatched through IPC. - System Tray: The tray menu is configured in
setupTray()and keeps the desktop surface in sync with the runtime. - Events: Window, theme, screen, lifecycle, and tray actions are broadcast as WebSocket events for the frontend.