Initial boilerplate scaffold for continuum-app

This commit is contained in:
2026-08-28 16:21:23 +00:00
commit 4cb2e82a92
25 changed files with 810 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
[package]
name = "continuum-desktop"
version = "0.1.0"
description = "Continuum operator console desktop shell"
edition = "2021"
rust-version = "1.77"
[build-dependencies]
tauri-build = { version = "2.0", features = [] }
[dependencies]
tauri = { version = "2.1", features = ["tray-icon"] }
tauri-plugin-fs = "2.0"
tauri-plugin-shell = "2.0"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[lib]
name = "continuum_desktop_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[[bin]]
name = "continuum-desktop"
path = "src/main.rs"
+3
View File
@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}
@@ -0,0 +1,14 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Capabilities granted to the main Continuum window",
"windows": ["main"],
"permissions": [
"core:default",
"fs:default",
"fs:allow-read-file",
"fs:allow-write-file",
"fs:scope-appdata",
"shell:allow-open"
]
}
+39
View File
@@ -0,0 +1,39 @@
// Prevents an additional console window on Windows in release builds.
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use tauri::{
menu::{Menu, MenuItem},
tray::TrayIconBuilder,
Manager,
};
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_fs::init())
.plugin(tauri_plugin_shell::init())
.setup(|app| {
let show = MenuItem::with_id(app, "show", "Show Continuum", true, None::<&str>)?;
let quit = MenuItem::with_id(app, "quit", "Quit", true, None::<&str>)?;
let menu = Menu::with_items(app, &[&show, &quit])?;
TrayIconBuilder::new()
.icon(app.default_window_icon().unwrap().clone())
.menu(&menu)
.tooltip("Continuum — print farm console")
.on_menu_event(|app, event| match event.id.as_ref() {
"show" => {
if let Some(window) = app.get_webview_window("main") {
let _ = window.show();
let _ = window.set_focus();
}
}
"quit" => app.exit(0),
_ => {}
})
.build(app)?;
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running the Continuum desktop shell");
}
+48
View File
@@ -0,0 +1,48 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Continuum",
"version": "0.1.0",
"identifier": "com.continuum3d.desktop",
"build": {
"beforeDevCommand": "pnpm --filter @continuum/web dev",
"beforeBuildCommand": "pnpm --filter @continuum/web generate",
"devUrl": "http://localhost:3000",
"frontendDist": "../dist"
},
"app": {
"windows": [
{
"label": "main",
"title": "Continuum",
"width": 1280,
"height": 800,
"minWidth": 960,
"minHeight": 600,
"resizable": true
}
],
"security": {
"csp": null
},
"trayIcon": {
"iconPath": "icons/icon.png",
"iconAsTemplate": true
}
},
"bundle": {
"active": true,
"targets": "all",
"icon": [
"icons/32x32.png",
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.icns",
"icons/icon.ico"
]
},
"plugins": {
"fs": {
"scope": ["$APPDATA/continuum/**", "$DOWNLOAD/**"]
}
}
}