Desktop app: real icon and proper Tauri bundle #53

Merged
Breadway merged 1 commit from feature/bb-56-tauri-bundle into main 2026-09-09 20:28:42 +08:00
Owner

apps/desktop had no icons (tauri.conf.json pointed at a nonexistent icons/icon.png) and only stub bundle config, so it could not be packaged.

Changes

  • Icons (apps/desktop/icons/): the breadboard app icon, a bread mark on a blue field matching the web favicon's 🍞, generated with cargo tauri icon: 32/64/128/128@2x PNGs, icon.ico, icon.icns, the Windows Square/Store logos, plus the icon.svg source for regeneration. Mobile icon dirs removed (desktop only, matches bos-settings/src/icons).
  • tauri.conf.json: full bundle metadata (category: DeveloperTool, copyright, publisher, homepage, license: MIT, short + long descriptions), the standard 5-entry icon list, targets: ["appimage", "deb"]. The version key is dropped so Tauri reads it from this crate's Cargo.toml (0.1.0, the workspace version) rather than being a third hand-maintained copy.
  • Cargo.toml: empty [workspace] table so cargo / cargo tauri treat this deliberately-standalone crate as independent instead of erroring that it "believes it's in a workspace when it's not".
  • .gitignore (new): the repo-root one only anchors /target; this covers apps/desktop/target and gen/.
  • Cargo.lock (new, committed): reproducible builds for the distributable binary.
  • README.md: build, bundle, and icon-regeneration notes.

Verification

  • cargo tauri build --bundles deb produces target/release/bundle/deb/breadboard_0.1.0_amd64.deb. Inspected: Package: breadboard, Version: 0.1.0, Depends: libwebkit2gtk-4.1-0, libgtk-3-0 (deduped, Tauri-detected), Homepage, Maintainer, description + long description; hicolor icons at 32/128/256@2; .desktop entry with Categories=Development.
  • The release binary compiles and links for the AppImage target too.
  • Not completable here: the AppImage bundling step fails because linuxdeploy is fetched from GitHub and run via FUSE, which this sandbox blocks. Run npm run build on a normal host for the AppImage; the config is correct.

Bakery distribution is deliberately not wired here (separate issue, needs release secrets).

Closes BB-56

`apps/desktop` had no icons (`tauri.conf.json` pointed at a nonexistent `icons/icon.png`) and only stub bundle config, so it could not be packaged. ## Changes - **Icons** (`apps/desktop/icons/`): the breadboard app icon, a bread mark on a blue field matching the web favicon's 🍞, generated with `cargo tauri icon`: 32/64/128/128@2x PNGs, `icon.ico`, `icon.icns`, the Windows Square/Store logos, plus the `icon.svg` source for regeneration. Mobile icon dirs removed (desktop only, matches `bos-settings/src/icons`). - **`tauri.conf.json`**: full bundle metadata (`category: DeveloperTool`, `copyright`, `publisher`, `homepage`, `license: MIT`, short + long descriptions), the standard 5-entry `icon` list, `targets: ["appimage", "deb"]`. The `version` key is dropped so Tauri reads it from this crate's `Cargo.toml` (`0.1.0`, the workspace version) rather than being a third hand-maintained copy. - **`Cargo.toml`**: empty `[workspace]` table so `cargo` / `cargo tauri` treat this deliberately-standalone crate as independent instead of erroring that it "believes it's in a workspace when it's not". - **`.gitignore`** (new): the repo-root one only anchors `/target`; this covers `apps/desktop/target` and `gen/`. - **`Cargo.lock`** (new, committed): reproducible builds for the distributable binary. - **`README.md`**: build, bundle, and icon-regeneration notes. ## Verification - `cargo tauri build --bundles deb` produces `target/release/bundle/deb/breadboard_0.1.0_amd64.deb`. Inspected: `Package: breadboard`, `Version: 0.1.0`, `Depends: libwebkit2gtk-4.1-0, libgtk-3-0` (deduped, Tauri-detected), `Homepage`, `Maintainer`, description + long description; hicolor icons at 32/128/256@2; `.desktop` entry with `Categories=Development`. - The release binary compiles and links for the AppImage target too. - **Not completable here:** the AppImage *bundling* step fails because `linuxdeploy` is fetched from GitHub and run via FUSE, which this sandbox blocks. Run `npm run build` on a normal host for the AppImage; the config is correct. Bakery distribution is deliberately not wired here (separate issue, needs release secrets). Closes BB-56
feat: real icon and proper Tauri bundle for the desktop app
All checks were successful
check / check (push) Successful in 1m24s
21712197c9
apps/desktop had no icons at all (tauri.conf.json pointed at a nonexistent
icons/icon.png) and only stub bundle config, so it could not be packaged.

- Add the breadboard app icon set (the bread mark on a blue field, matching
  the web favicon) generated with cargo tauri icon: 32/64/128/128@2x PNGs,
  icon.ico, icon.icns, the Windows Square/Store logos, and the icon.svg
  source. Mobile icon dirs dropped (desktop only).
- tauri.conf.json: full bundle metadata (category DeveloperTool, copyright,
  publisher, homepage, MIT license, short and long descriptions), the standard
  icon list, and targets appimage + deb. The version key is dropped so Tauri
  takes it from this crate's Cargo.toml (0.1.0, the workspace version).
- Cargo.toml: add an empty [workspace] table so cargo tauri does not try to
  attach this deliberately-standalone crate to the repo-root workspace.
- Add apps/desktop/.gitignore (root .gitignore only covers /target) and commit
  the generated Cargo.lock.
- README: build, bundle, and icon-regeneration notes.

Verified: cargo tauri build --bundles deb produces a well-formed
breadboard_0.1.0_amd64.deb (correct control fields and Depends, hicolor icons,
Categories=Development desktop entry). The release binary compiles and links
for the AppImage target too; only the AppImage bundling step fails here because
linuxdeploy needs GitHub downloads and FUSE, so that runs on a real host.

Closes BB-56
Breadway deleted branch feature/bb-56-tauri-bundle 2026-09-09 20:28:43 +08:00
Sign in to join this conversation.
No reviewers
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!53
No description provided.