GitHub - paakjong/tauri-nspopover-plugin: NSPopover plugin for tauri · GitHub
Skip to content

About

NSPopover plugin for tauri

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Tauri Plugin NSpopover

for Tauri v2

Only for MacOS

Install

# Cargo.toml
[dependencies]
tauri-plugin-nspopover = { git = "https://github.com/freethinkel/tauri-nspopover-plugin.git", branch = "tauri-beta/v2", version = "3.0.0" }
// package.json
"dependencies": {
  "tauri-plugin-nspopover": "git+https://github.com/freethinkel/tauri-nspopover-plugin#tauri-beta/v2"
}

Usage

// main.rs
use tauri::{ActivationPolicy, Manager};
use tauri_plugin_nspopover::WindowExt;

fn main() {
    tauri::Builder::default()
        .setup(|app| {
            app.set_activation_policy(ActivationPolicy::Accessory);
            let window = app.app_handle().get_window("main").unwrap();
            window.to_popover();
            Ok(())
        })
        .plugin(tauri_plugin_nspopover::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
// main.ts
import { TrayIcon } from "@tauri-apps/api/tray";
import { isOpen, show, hide } from "tauri-plugin-nspopover";

TrayIcon.new({
  id: "main",
  async action() {
    const isShown = await isOpen();
    if (isShown) {
      hide();
    } else {
      show();
    }
  },
});

OR you can use rust api

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_shell::init())
        .plugin(tauri_plugin_nspopover::init())
        .setup(|app| {
            app.set_activation_policy(ActivationPolicy::Accessory);
            let window = app.handle().get_webview_window("main").unwrap();
            window.to_popover();

            let tray = app.tray_by_id("main").unwrap();
            let handle = app.handle().clone();

            tray.on_tray_icon_event(move |_, event| {
                if (!handle.is_popover_shown()) {
                    handle.show_popover();
                } else {
                    handle.hide_popover();
                }
            });

            Ok(())
        })
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}
// tauri.config.json
"systemTray": {
  "iconPath": "icons/statusbar-icon.png",
  "iconAsTemplate": true,
  "id": "main"
},
...
"windows": [
  {
    "fullscreen": false,
    "visible": false,
    "title": "inboxion",
    "width": 300,
    "height": 450,
    "transparent": true
  }
]

Example

git clone https://github.com/freethinkel/tauri-plugin-nspopover
cd tauri-plugin-accent-color/example
pnpm install
pnpm tauri dev

About

NSPopover plugin for tauri

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages