Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Quick Switcher

跨平台窗口快速切换工具,类似 Alfred/Raycast/Listary。

功能特性

  • 全局快捷键呼出:默认 Alt + Ctrl + Space,可自定义
  • 实时搜索过滤:支持窗口标题和进程名搜索
  • 拼音搜索:支持中文窗口名的拼音首字母和全拼搜索
  • 键盘导航:
    • ↑ / ↓ 或 Ctrl+P / Ctrl+N 选择窗口
    • Enter 切换到选中的窗口
    • Esc 关闭窗口
  • 多显示器支持:窗口显示在鼠标所在的屏幕上
  • 系统托盘:右键托盘图标可显示窗口、打开设置、退出程序
  • 窗口状态保持:切换窗口时保持最大化/普通状态

技术栈

  • 后端:Rust + Tauri 2
  • 前端:React + TypeScript + Vite
  • 样式:CSS

平台支持

平台 架构 状态
Linux (X11) x86_64, aarch64 ✅
Linux (KDE Wayland) x86_64, aarch64 ✅
Linux (GNOME/Sway) x86_64, aarch64 ⚠️ 仅 XWayland
Windows x86_64, aarch64 ✅
macOS (Intel) x86_64 ✅
macOS (Apple Silicon) aarch64 ✅

安装

Linux

Arch Linux (AUR)

yay -S quick-switcher-bin

Debian/Ubuntu

下载对应架构的 .deb 文件:

  • x86_64: quick-switcher_x86_64.deb
  • aarch64: quick-switcher_aarch64.deb
sudo apt install ./quick-switcher_x86_64.deb

Fedora/openSUSE

下载对应架构的 .rpm 文件:

  • x86_64: quick-switcher_x86_64.rpm
  • aarch64: quick-switcher_aarch64.rpm
sudo rpm -i ./quick-switcher_x86_64.rpm

AppImage (通用)

下载 .AppImage 文件,赋予执行权限后直接运行:

chmod +x quick-switcher_x86_64.AppImage
./quick-switcher_x86_64.AppImage

Windows

下载 MSI 或 NSIS 安装包:

  • x86_64: quick-switcher_x86_64.msi 或 quick-switcher_x86_64-setup.exe
  • aarch64: quick-switcher_aarch64.msi 或 quick-switcher_aarch64-setup.exe

双击安装包进行安装。

macOS

下载对应架构的 DMG 文件:

  • Intel Mac: Quick.Switcher_*_x64.dmg
  • Apple Silicon: Quick.Switcher_*_aarch64.dmg

打开 DMG 文件,将应用拖拽到 Applications 文件夹。

当前 macOS 安装包使用免费的 ad-hoc 签名,没有经过 Apple 公证。首次启动时:

  1. 在“应用程序”中右键 Quick Switcher,选择“打开”
  2. 在确认窗口中再次选择“打开”
  3. 按系统提示进入“系统设置 → 隐私与安全性 → 辅助功能”,允许 Quick Switcher
  4. 使用 Alt + Ctrl + Space 呼出窗口

如果 macOS 仍提示应用已损坏,可在确认安装包来自本项目 Release 后执行:

xattr -dr com.apple.quarantine "/Applications/Quick Switcher.app"

项目结构

├── src/                    # 前端源码
│   ├── App.tsx            # 主窗口组件
│   ├── App.css            # 主窗口样式
│   ├── Settings.tsx       # 设置页面组件
│   └── Settings.css       # 设置页面样式
├── src-tauri/              # Rust 后端
│   ├── src/
│   │   ├── main.rs        # 桌面应用入口
│   │   ├── cli.rs         # 命令行工具入口
│   │   ├── lib.rs         # 主逻辑
│   │   ├── search.rs      # 搜索匹配模块
│   │   └── kwin.rs        # KWayland 集成 (Linux only)
│   ├── Cargo.toml         # Rust 依赖
│   └── tauri.conf.json    # Tauri 配置
├── package.json            # Node 依赖
└── vite.config.ts          # Vite 配置

开发环境

前置要求

Linux 额外要求

# Ubuntu/Debian
sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

# Arch Linux
sudo pacman -S webkit2gtk-4.1 gtk3 libayatana-appindicator librsvg

# Fedora
sudo dnf install webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-devel

Wayland KDE 支持:内置 KWin Scripting API,无需额外依赖。

安装依赖

# 安装前端依赖
npm install

# Rust 依赖会在首次运行时自动安装

开发模式

npm run tauri dev

该命令默认启动桌面应用 quick-switcher,并监听前端和 Rust 源码变更。

项目还包含独立的命令行工具。如需调试 CLI,请在另一个终端运行:

cd src-tauri
cargo run --bin quick-switcher-cli -- list

直接在 src-tauri 下执行 cargo run 时,也会默认启动桌面应用;如需明确指定,可运行:

cargo run --bin quick-switcher

运行测试

# Rust 单元测试
cd src-tauri
cargo test

构建发布

开发构建

npm run tauri build

构建产物位于 src-tauri/target/release/bundle/ 目录。

Windows

npm run tauri build

输出文件:

  • src-tauri/target/release/quick-switcher.exe - 可执行文件
  • src-tauri/target/release/bundle/msi/ - MSI 安装包
  • src-tauri/target/release/bundle/nsis/ - NSIS 安装包

macOS

npm run tauri build

输出文件:

  • src-tauri/target/release/bundle/dmg/ - DMG 安装包
  • src-tauri/target/release/bundle/macos/ - .app 应用包

Linux

npm run tauri build

输出文件:

  • src-tauri/target/release/bundle/deb/ - DEB 包(Debian/Ubuntu)
  • src-tauri/target/release/bundle/appimage/ - AppImage(通用)
  • src-tauri/target/release/bundle/rpm/ - RPM 包(Fedora/openSUSE)

注意:

  • X11 环境直接可用
  • Wayland KDE Plasma 6 内置支持,无需额外依赖
  • 其他 Wayland 环境(GNOME/Sway)只能看到 XWayland 窗口

配置

快捷键设置

  1. 右键系统托盘图标
  2. 点击 "Settings"
  3. 点击输入框,按下想要的组合键
  4. 点击 "Save" 保存

支持的修饰键:Alt、Ctrl、Shift、Win

配置文件位置:

  • Windows: %APPDATA%\quick-switcher\config.json
  • macOS: ~/Library/Application Support/quick-switcher/config.json
  • Linux: ~/.config/quick-switcher/config.json

快捷键列表

快捷键 功能
Alt + Ctrl + Space 呼出/隐藏窗口(默认,可自定义)
↑ / ↓ 选择窗口
Ctrl + P / Ctrl + N 选择窗口(Emacs 风格)
Enter 切换到选中的窗口
Esc 关闭窗口

常见问题

Linux Wayland 窗口列表为空或切换不工作?

KDE Plasma 6:内置 KWin Scripting API 支持,无需额外配置。

其他 Wayland 环境(GNOME/Sway):目前仅支持 XWayland 窗口(X11 应用)。要查看原生 Wayland 窗口需要 compositor 特定协议支持,目前正在开发中。

多显示器下窗口位置不对

窗口会显示在鼠标当前所在的显示器上,并自动居中。

搜索支持哪些方式?

  • 直接匹配:输入 "chrome" 匹配 Chrome 窗口
  • 拼音全拼:输入 "weixin" 匹配 "微信"
  • 拼音首字母:输入 "wx" 匹配 "微信"

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages