4 个版本
0.2.0 | 2024年2月6日 |
---|---|
0.1.2 | 2023年4月1日 |
0.1.1 | 2023年2月19日 |
0.1.0 | 2023年2月19日 |
#409 在 GUI
50KB
832 行
Tauri 插件:Spotlight
一个为 Tauri 窗口提供类似 MacOS Spotlight 搜索功能的 Tauri 插件。
概述
Spotlight 是一个 Tauri 插件,提供了一种用户友好且直观的方式与您的桌面应用程序交互——类似 Spotlight 的搜索界面。
此插件目前仅适用于 macOS,但对其他平台有基本实现。
功能
- 允许用户定义显示和隐藏窗口的热键
- 任何窗口都可以注册以实现此插件提供的功能
- 窗口失去焦点时将自动隐藏
- 支持多显示器(目前仅限 macOS)
- 窗口始终保持在最前面,并在隐藏后重新激活之前活动的窗口(目前仅限 macOS)
安装
通过在 Cargo.toml 文件中添加以下内容来安装核心插件
src-tauri/Cargo.toml
[dependencies]
tauri-plugin-spotlight = { git = "https://github.com/zzzze/tauri-plugin-spotlight" }
您可以使用您首选的 JavaScript 包管理器安装 JavaScript 客户端绑定
pnpm add tauri-plugin-spotlight-api
# or
npm add tauri-plugin-spotlight-api
# or
yarn add tauri-plugin-spotlight-api
用法
后端
有三种方式可以配置此插件
- 使用 Tauri 注册 spotlight 插件
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");
}
- 在您的 Tauri 应用程序配置文件中配置插件
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");
}
在 tauri.conf.json
和 tauri_plugin_spotlight::init
中编写的配置参数将与 tauri_plugin_spotlight::init
自动合并,并具有更高的优先级。
前端
使用 hide
函数使 spotlight 窗口不可见
import { hide } from 'tauri-plugin-spotlight-api';
void hide();
示例应用
准备
- 构建插件的前端 API。
pnpm i
pnpm build
- 安装示例应用的依赖项。
cd examples/react-app
pnpm i
- 启动示例应用。
pnpm tauri dev
感谢
此插件灵感来源于tauri-macos-spotlight-example项目,该项目由ahkohd创建,并在其代码库中大量借鉴。感谢ahkohd以及tauri-macos-spotlight-example项目的贡献者们为他们的辛勤工作和开源贡献!
依赖项
~21–63MB
~1M SLoC