Menu

Building a Menubar App with Tauri v2 — What Nobody Tells You
🖼️

Building a Menubar App with Tauri v2 — What Nobody Tells You

DEV Community·hiyoyo·7 months ago
#ovd4hQpS
#rust#tauri#programming#pdf#window
Reading 0:00
15s threshold

All tests run on an 8-year-old MacBook Air.

A menubar app looks simple from the outside. Click the icon, panel appears, click away, panel hides.

The implementation has more moving parts than you'd expect — especially in Tauri v2, where menubar support changed significantly from v1.

The basic setup

Tauri v2 doesn't have a built-in "menubar mode." You build it by combining a few primitives: a system tray icon, a frameless window, and some positioning logic.

use tauri ::{ Manager , SystemTray , SystemTrayEvent , WindowBuilder , WindowUrl , };

fn main () { let tray = SystemTray :: new ();

tauri :: Builder :: default () .system_tray ( tray ) .on_system_tray_event (| app , event | { if let SystemTrayEvent :: LeftClick { position , size , .. } = event { let window = app .get_window ( "main" ) .unwrap (); position_panel_at_tray ( & window , position , size ); window .show () .unwrap (); window .set_focus () .unwrap (); } }) .run ( tauri :: generate_context!…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.