Crates.io | tauri-plugin-spotlight |
lib.rs | tauri-plugin-spotlight |
version | 0.2.0 |
source | src |
created_at | 2023-02-19 09:54:55.742452 |
updated_at | 2024-02-06 17:48:58.106586 |
description | A Tauri plugin that provides a MacOS Spotlight-like search functionality for Tauri windows. |
homepage | |
repository | https://github.com/zzzze/tauri-plugin-spotlight |
max_upload_size | |
id | 788736 |
size | 149,676 |
A Tauri plugin that provides a MacOS Spotlight-like search functionality for Tauri windows.
Spotlight is a Tauri plugin that provides a user-friendly and intuitive way to interact with your desktop applications - the Spotlight search-like interface.
This plugin is currently implemented for macOS, but has basic implementations for other platforms.
Features:
Install the Core plugin by adding the following to your Cargo.toml file:
src-tauri/Cargo.toml
[dependencies]
tauri-plugin-spotlight = { git = "https://github.com/zzzze/tauri-plugin-spotlight" }
You can install the JavaScript Guest bindings using your preferred JavaScript package manager:
pnpm add tauri-plugin-spotlight-api
# or
npm add tauri-plugin-spotlight-api
# or
yarn add tauri-plugin-spotlight-api
There are three ways to configure the plugin:
src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_spotlight::init(Some(tauri_plugin_spotlight::PluginConfig {
windows: Some(vec![
tauri_plugin_spotlight::WindowConfig {
label: String::from("main"),
shortcut: String::from("Ctrl+Shift+J"),
macos_window_level: Some(20), // Default 24
},
]),
global_close_shortcut: Some(String::from("Escape")),
})))
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
src-tauri/tauri.conf.json
{
"plugins": {
"spotlight": {
"windows": [{
"label": "main",
"shortcut": "Ctrl+Shift+J",
"macos_window_level": 20
}],
"global_close_shortcut": "Escape"
}
}
}
src-tauri/src/main.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_spotlight::init(None))
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
src-tauri/src/main.rs
use tauri_plugin_spotlight::ManagerExt;
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_spotlight::init(Some(tauri_plugin_spotlight::PluginConfig {
windows: None,
global_close_shortcut: Some(String::from("Escape")),
})))
.setup(|mut app| {
if let Some(window) = app.get_window("main") {
app.spotlight().init_spotlight_window(&window, "Ctrl+Shift+J").unwrap();
}
app_modifier::apply(&mut app);
Ok(())
})
.build(tauri::generate_context!())
.expect("error while running application");
}
The configuration parameters written in tauri.conf.json
and tauri_plugin_spotlight::init
will be automatically merged with tauri_plugin_spotlight::init
taking higher priority.
Use the hide
function to make a spotlight window invisible:
import { hide } from 'tauri-plugin-spotlight-api';
void hide();
pnpm i
pnpm build
cd examples/react-app
pnpm i
pnpm tauri dev
This plugin was inspired by the tauri-macos-spotlight-example project by ahkohd, and borrows heavily from its codebase. Thanks to ahkohd and the contributors to tauri-macos-spotlight-example for their hard work and open-source contributions!