Skip to content

v0.3.0 — Native-feel batch (title bar · accent · pause · taskbar · shell menu)

Choose a tag to compare

@ethemdemirkaya ethemdemirkaya released this 29 May 13:02
· 2 commits to main since this release

A big polish + integration release. Six features ship together to make the app feel like it grew out of Windows instead of being grafted on top of it.

LanBlaze main screen

What's new

Custom title bar with edge-to-edge Mica

The OS title strip is gone (decorations: false). Mica now extends all the way to the top of the window. A new <TitleBar/> component handles dragging (data-tauri-drag-region) and exposes Win11-standard 46×32 min/max/close buttons with the correct hover styling — close button hovers to #c42b1c, the rest to a neutral grey.

System accent color

accent.rs reads HKCU\Software\Microsoft\Windows\DWM\AccentColor (DWORD, ABGR) via winreg and the frontend pipes it through applyAccentToTheme(), overriding ~12 Fluent brand tokens (background / foreground / stroke / compound brand). Buttons, badges, the progress bar, the selected peer tile — all of them pick up whatever colour you set in Windows.

Settings → Appearance → "Use system accent color" lets you toggle it off if you prefer the Fluent default blue.

Pause / Resume

Each active transfer now has a ⏸ button next to the ×. Pressing it stops the worker task at the next chunk boundary on your side; the other side notices via TCP back-pressure and stops draining too. ▶ resumes from exactly where it left off — no protocol handshake, no .part rewrite.

Backend: PauseToken (tokio::sync::Notify + AtomicBool) per transfer, registered in AppState.pause. Sender and receiver chunk loops call pause.wait_if_paused().await between every read/write.

Windows taskbar progress overlay

taskbar.rs initialises ITaskbarList3 once (behind a OnceLock<Mutex<…>> so COM stays single-apartment) and the frontend invokes set_taskbar_progress(value, total, state) every time the active-transfers list changes:

  • Active → green bar tracks total bytes
  • Any transfer paused → yellow bar
  • All done → no overlay

Window state persistence

tauri-plugin-window-state remembers size, position, and maximized state across launches. Zero UI surface — you'll just notice the window comes back where you left it.

Windows Explorer "Send via LanBlaze" right-click menu

Right-click any file or folder (or empty space inside a folder) → "Send via LanBlaze". The app opens (or focuses, if already running) with your selection pre-loaded into the compose; you just pick a peer + code and hit send.

  • tauri-plugin-single-instance makes the second launch hand its argv to the running instance instead of opening a duplicate window.
  • New NSIS hook script installer/hooks.nsh writes three registry entries on install — files, directories, folder backgrounds — all under HKCU so install stays UAC-free. Uninstall reverses them.
  • Argv flows from the installer-spawned process → tauri-plugin-single-instance callback → shell://send-paths event → frontend listener → selectedPaths.

Install (Windows)

Download LanBlaze_0.3.0_x64-setup.exe below. Per-user install (no UAC). Installs over v0.2.x and keeps everything — settings, trusted devices, history, last-checked-update timestamp.

The installer is unsigned, so SmartScreen will say "Unknown publisher". Click More info → Run anyway.

Changes since 0.2.5

  • feat(v0.3.0): custom title bar, accent, pause, taskbar, shell menu, window state (13200bf)
  • docs: refresh main screenshot for v0.3.0 (a9b84c0)

Upgrade notes

  • First launch after upgrade: the Windows context-menu entries get registered the moment NSIS finishes; no extra step.
  • Pause/Resume + taskbar overlay are live the moment you start a transfer.
  • Custom title bar: if you don't see it, your Mica setting was already opaque — the new bar is the same height (32 px) as Win11 standard, so layouts won't reshuffle.