diff --git a/crates/tauri-cli/config.schema.json b/crates/tauri-cli/config.schema.json index 47673fd77..9faa548b4 100644 --- a/crates/tauri-cli/config.schema.json +++ b/crates/tauri-cli/config.schema.json @@ -164,7 +164,7 @@ "type": "object", "properties": { "windows": { - "description": "The app windows configuration.", + "description": "The app windows configuration.\n\n ## Example:\n\n To create a window at app startup\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n If not specified, the window's label (its identifier) defaults to \"main\",\n you can use this label to get the window through\n `app.get_webview_window` in Rust or `WebviewWindow.getByLabel` in JavaScript\n\n When working with multiple windows, each window will need an unique label\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"label\": \"main\", \"width\": 800, \"height\": 600 },\n { \"label\": \"secondary\", \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n You can also set `create` to false and use this config through the Rust APIs\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"create\": false, \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n and use it like this\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": [], "type": "array", "items": { @@ -230,7 +230,7 @@ "type": "string" }, "create": { - "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).", + "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": true, "type": "boolean" }, diff --git a/crates/tauri-schema-generator/schemas/config.schema.json b/crates/tauri-schema-generator/schemas/config.schema.json index 47673fd77..9faa548b4 100644 --- a/crates/tauri-schema-generator/schemas/config.schema.json +++ b/crates/tauri-schema-generator/schemas/config.schema.json @@ -164,7 +164,7 @@ "type": "object", "properties": { "windows": { - "description": "The app windows configuration.", + "description": "The app windows configuration.\n\n ## Example:\n\n To create a window at app startup\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n If not specified, the window's label (its identifier) defaults to \"main\",\n you can use this label to get the window through\n `app.get_webview_window` in Rust or `WebviewWindow.getByLabel` in JavaScript\n\n When working with multiple windows, each window will need an unique label\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"label\": \"main\", \"width\": 800, \"height\": 600 },\n { \"label\": \"secondary\", \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n You can also set `create` to false and use this config through the Rust APIs\n\n ```json\n {\n \"app\": {\n \"windows\": [\n { \"create\": false, \"width\": 800, \"height\": 600 }\n ]\n }\n }\n ```\n\n and use it like this\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": [], "type": "array", "items": { @@ -230,7 +230,7 @@ "type": "string" }, "create": { - "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).", + "description": "Whether Tauri should create this window at app startup or not.\n\n When this is set to `false` you must manually grab the config object via `app.config().app.windows`\n and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config).\n\n ## Example:\n\n ```rust\n tauri::Builder::default()\n .setup(|app| {\n tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?;\n Ok(())\n });\n ```", "default": true, "type": "boolean" }, diff --git a/crates/tauri-utils/src/config.rs b/crates/tauri-utils/src/config.rs index 937f208fe..66e1a4670 100644 --- a/crates/tauri-utils/src/config.rs +++ b/crates/tauri-utils/src/config.rs @@ -1559,6 +1559,16 @@ pub struct WindowConfig { /// /// When this is set to `false` you must manually grab the config object via `app.config().app.windows` /// and create it with [`WebviewWindowBuilder::from_config`](https://docs.rs/tauri/2/tauri/webview/struct.WebviewWindowBuilder.html#method.from_config). + /// + /// ## Example: + /// + /// ```rust + /// tauri::Builder::default() + /// .setup(|app| { + /// tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?; + /// Ok(()) + /// }); + /// ``` #[serde(default = "default_true")] pub create: bool, /// The window webview URL. @@ -2557,6 +2567,59 @@ impl Default for PatternKind { #[serde(rename_all = "camelCase", deny_unknown_fields)] pub struct AppConfig { /// The app windows configuration. + /// + /// ## Example: + /// + /// To create a window at app startup + /// + /// ```json + /// { + /// "app": { + /// "windows": [ + /// { "width": 800, "height": 600 } + /// ] + /// } + /// } + /// ``` + /// + /// If not specified, the window's label (its identifier) defaults to "main", + /// you can use this label to get the window through + /// `app.get_webview_window` in Rust or `WebviewWindow.getByLabel` in JavaScript + /// + /// When working with multiple windows, each window will need an unique label + /// + /// ```json + /// { + /// "app": { + /// "windows": [ + /// { "label": "main", "width": 800, "height": 600 }, + /// { "label": "secondary", "width": 800, "height": 600 } + /// ] + /// } + /// } + /// ``` + /// + /// You can also set `create` to false and use this config through the Rust APIs + /// + /// ```json + /// { + /// "app": { + /// "windows": [ + /// { "create": false, "width": 800, "height": 600 } + /// ] + /// } + /// } + /// ``` + /// + /// and use it like this + /// + /// ```rust + /// tauri::Builder::default() + /// .setup(|app| { + /// tauri::WebviewWindowBuilder::from_config(app.handle(), app.config().app.windows[0])?.build()?; + /// Ok(()) + /// }); + /// ``` #[serde(default)] pub windows: Vec, /// Security configuration.