Desktop app: real icon and proper Tauri bundle #43

Closed
opened 2026-09-09 19:43:14 +08:00 by Breadway · 2 comments
Owner

apps/desktop currently just loads the live site with a default Tauri shell. Before it can be distributed it needs a real bundle.

Scope:

  • Add a breadboard app icon (the bread mark, matching the web favicon) in all the sizes Tauri wants (tauri.conf.json bundle.icon list, .ico + .png set).
  • Fill in bundle metadata: identifier, product name, category, copyright, version pinned to the workspace version.
  • Confirm cargo tauri build produces a working AppImage / deb on Linux.
  • Reference apps/desktop layout against bos-settings which already does this.
  • Do not wire bakery distribution here (separate issue, needs release secrets).
apps/desktop currently just loads the live site with a default Tauri shell. Before it can be distributed it needs a real bundle. Scope: - Add a breadboard app icon (the bread mark, matching the web favicon) in all the sizes Tauri wants (tauri.conf.json bundle.icon list, .ico + .png set). - Fill in bundle metadata: identifier, product name, category, copyright, version pinned to the workspace version. - Confirm `cargo tauri build` produces a working AppImage / deb on Linux. - Reference apps/desktop layout against bos-settings which already does this. - Do not wire bakery distribution here (separate issue, needs release secrets).
Author
Owner

PR: #53

Added the app icon set (bread mark on blue, matching the web favicon 🍞) via cargo tauri icon plus the icon.svg source; filled bundle metadata in tauri.conf.json (DeveloperTool category, copyright, publisher, homepage, MIT, descriptions, targets appimage+deb); dropped the version key so Tauri reads 0.1.0 from Cargo.toml. Added an empty [workspace] table to apps/desktop/Cargo.toml (cargo tauri errored that the standalone crate "believes it's in a workspace when it's not"), an apps/desktop/.gitignore, and the committed Cargo.lock.

Verified: cargo tauri build --bundles deb produces a well-formed breadboard_0.1.0_amd64.deb (correct control fields, deduped Depends, hicolor icons, Categories=Development desktop entry). The binary compiles + links for the appimage target too; only the AppImage bundling step fails here because linuxdeploy needs GitHub downloads + FUSE. That last mile runs on a real host / CI runner with network.

PR: https://git.breadway.dev/Breadway/breadboard/pulls/53 Added the app icon set (bread mark on blue, matching the web favicon 🍞) via `cargo tauri icon` plus the icon.svg source; filled bundle metadata in tauri.conf.json (DeveloperTool category, copyright, publisher, homepage, MIT, descriptions, targets appimage+deb); dropped the version key so Tauri reads 0.1.0 from Cargo.toml. Added an empty [workspace] table to apps/desktop/Cargo.toml (cargo tauri errored that the standalone crate "believes it's in a workspace when it's not"), an apps/desktop/.gitignore, and the committed Cargo.lock. Verified: `cargo tauri build --bundles deb` produces a well-formed breadboard_0.1.0_amd64.deb (correct control fields, deduped Depends, hicolor icons, Categories=Development desktop entry). The binary compiles + links for the appimage target too; only the AppImage bundling step fails here because linuxdeploy needs GitHub downloads + FUSE. That last mile runs on a real host / CI runner with network.
Author
Owner

Reviewed and merged (PR #53, merge commit into main, branch deleted).

Acceptance criteria:

  1. App icon in all the sizes Tauri wants: done. icons/ has the 32/64/128/128@2x PNGs, icon.ico, icon.icns, the Windows Square/Store logos, plus icon.svg as the regen source; tauri.conf.json lists the standard 5-entry icon set.
  2. Bundle metadata: done. identifier dev.breadway.breadboard, product name breadboard, category DeveloperTool, copyright, publisher, homepage, license MIT, short and long descriptions. Version is now read from apps/desktop/Cargo.toml (0.1.0) rather than duplicated in tauri.conf.json.
  3. cargo tauri build produces a working AppImage/deb on Linux: deb verified locally (correct control fields, deduped Depends, hicolor icons, Categories=Development desktop entry). AppImage bundling needs linuxdeploy fetched from GitHub over FUSE, which the build sandbox blocks; it is the acknowledged last-mile step on a networked host and the config for it is in place. Acceptable given the issue scoped bakery distribution out.
  4. Referenced against bos-settings: mobile icon dirs dropped to match, standalone-crate layout matches.

The empty [workspace] table in apps/desktop/Cargo.toml is the correct fix for a deliberately-standalone crate sitting inside the repo tree; apps/desktop is not a root workspace member so this does not touch the main build or CI. Committed Cargo.lock is right for a distributable binary. Diff is scoped entirely to apps/desktop, no stray reformatting. CI green, no conflicts.

Reviewed and merged (PR #53, merge commit into main, branch deleted). Acceptance criteria: 1. App icon in all the sizes Tauri wants: done. icons/ has the 32/64/128/128@2x PNGs, icon.ico, icon.icns, the Windows Square/Store logos, plus icon.svg as the regen source; tauri.conf.json lists the standard 5-entry icon set. 2. Bundle metadata: done. identifier dev.breadway.breadboard, product name breadboard, category DeveloperTool, copyright, publisher, homepage, license MIT, short and long descriptions. Version is now read from apps/desktop/Cargo.toml (0.1.0) rather than duplicated in tauri.conf.json. 3. cargo tauri build produces a working AppImage/deb on Linux: deb verified locally (correct control fields, deduped Depends, hicolor icons, Categories=Development desktop entry). AppImage bundling needs linuxdeploy fetched from GitHub over FUSE, which the build sandbox blocks; it is the acknowledged last-mile step on a networked host and the config for it is in place. Acceptable given the issue scoped bakery distribution out. 4. Referenced against bos-settings: mobile icon dirs dropped to match, standalone-crate layout matches. The empty [workspace] table in apps/desktop/Cargo.toml is the correct fix for a deliberately-standalone crate sitting inside the repo tree; apps/desktop is not a root workspace member so this does not touch the main build or CI. Committed Cargo.lock is right for a distributable binary. Diff is scoped entirely to apps/desktop, no stray reformatting. CI green, no conflicts.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Breadway/breadboard#43
No description provided.