Skip to content

Add OmniHost desktop shell, VSCode-style chrome, and multi-OS packaging workflow#2

Draft
Copilot wants to merge 5 commits intomainfrom
copilot/build-desktop-application
Draft

Add OmniHost desktop shell, VSCode-style chrome, and multi-OS packaging workflow#2
Copilot wants to merge 5 commits intomainfrom
copilot/build-desktop-application

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 16, 2026

Wrap the existing LVGL Editor web app as an OmniHost desktop application and add CI packaging for Linux, macOS, and Windows artifacts. The desktop shell follows the OmniHost cross-platform pattern and adopts VSCode-style window chrome/menu behavior.

  • Desktop host

    • Add desktop/LvglEditor.Desktop as the OmniHost entrypoint for the editor.
    • Use cross-platform runtime selection:
      • Windows: Win32Runtime + WebView2
      • Linux: GtkRuntime + WebKitGtk
      • macOS: explicit unsupported-path placeholder to keep artifact flow aligned until OmniHost exposes a native runtime
    • Serve the built Vite output from wwwroot via app://localhost/....
    • Configure VSCode-style host chrome with built-in title bar controls (minimize / maximize / close).
  • Editor chrome / menu integration

    • Add a VSCode-style in-app menu bar for 文件 / 编辑 / 视图 / 帮助.
    • Wire menu actions to existing editor commands: new/open/save/export/import, undo/redo, tab switching, resource panel toggle, settings, help.
    • Keep the existing editor toolbar and tab model intact while making the shell desktop-oriented.
  • Build and packaging

    • Add build:desktop-web to generate the static frontend bundle consumed by the desktop host.
    • Add desktop-packages.yml to publish zipped desktop artifacts for Linux, macOS, and Windows.
    • Add NuGet.config for OmniHost package restore from the maikebing GitHub Packages feed.
    • Gate packaging steps on feed credentials so CI can clearly no-op when the package token is not configured.
  • Docs / ops

    • Document desktop build flow and required package-feed credentials.
    • Ignore generated .NET build artifacts.
var builder = OmniApp.CreateBuilder(args)
    .Configure(options =>
    {
        options.Title = "LVGL Editor";
        options.CustomScheme = "app";
        options.ContentRootPath = Path.Combine(AppContext.BaseDirectory, "wwwroot");
        options.StartUrl = "app://localhost/index.html";
        options.StartMaximized = true;
        options.BuiltInTitleBarStyle = OmniBuiltInTitleBarStyle.VsCode;
        options.WindowStyle = OperatingSystem.IsWindows()
            ? OmniWindowStyle.VsCode
            : OmniWindowStyle.Frameless;
    });

Copilot AI and others added 3 commits April 15, 2026 20:33
Agent-Logs-Url: https://github.com/IoTSharp/lvgl-editor/sessions/ab1aca59-4e9e-473a-847e-86d1e2f9aafa

Co-authored-by: maikebing <3445167+maikebing@users.noreply.github.com>
Agent-Logs-Url: https://github.com/IoTSharp/lvgl-editor/sessions/ab1aca59-4e9e-473a-847e-86d1e2f9aafa

Co-authored-by: maikebing <3445167+maikebing@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants