SwishMini
January 29, 2026 · View on GitHub
📺 功能演示
✨ 核心功能
SwishMini 为 macOS 带来直观的触控板手势控制,让窗口管理更加高效。
手势映射表
| 手势 | 动作 | 说明 |
|---|---|---|
| 👐 双指张开 | 全屏 | 将当前窗口切换至全屏模式 |
| 🤏 双指捏合 | 还原 | 全屏时退出全屏 |
| 👆 上滑 1秒 | 关闭窗口 | 非全屏时上滑 1 秒关闭当前窗口 |
| 👇 双指下滑 | 最小化 | 最小化当前窗口到 Dock |
| 👆 双指上滑 | 取消最小化 | 在原位置恢复最小化的窗口 |
🎯 HUD 视觉反馈
执行手势时,屏幕会显示实时视觉反馈:
- 环形进度条:上滑关闭窗口时显示倒计时进度环
- 颜色渐变:从橙色平滑过渡到红色,表示紧迫程度
- 进度百分比:实时显示当前进度(如 50%、75%)
- 取消提示:松手或收回手指时显示"已取消"
🌐 特别支持
- Chrome 浏览器兼容性:自动检测并使用键盘快捷键(⌘ + Ctrl + F),确保全屏功能在 Chrome 中正常工作
- 智能手势识别:区分滑动和捏合动作,避免误触发
- 位置记忆:最小化窗口后,在原位置附近上滑即可恢复
🚀 快速开始
下载安装
-
下载应用
-
安装步骤
- 解压下载的 ZIP 文件
- 将
SwishMini.app拖入/Applications文件夹 - 双击打开应用
-
处理安全提示 🔐
由于 SwishMini 未经过 Apple 公证,首次打开时可能会看到提示:
"Apple 无法验证 'SwishMini' 是否包含可能危害 Mac 安全或泄漏隐私的恶意软件。"
解决方法(选择其一):
方法一:右键打开(推荐)
- 在 Finder 中找到
SwishMini.app - 按住
Control键点击(或右键点击)应用图标 - 选择"打开"
- 在弹出的对话框中点击"打开"
方法二:系统设置允许
- 尝试打开应用后,前往
系统设置 > 隐私与安全性 - 滚动到底部,找到关于 SwishMini 被阻止的提示
- 点击"仍要打开"
方法三:终端命令(高级用户)
xattr -cr /Applications/SwishMini.app然后正常双击打开应用。
- 在 Finder 中找到
-
授予权限 ⚠️ 重要步骤
首次运行时,系统会提示授予 辅助功能权限:
- 方式一:点击系统弹窗中的"打开系统偏好设置"
- 方式二:手动前往
系统设置 > 隐私与安全性 > 辅助功能 - 勾选
SwishMini旁边的复选框 - 重启应用使权限生效
-
验证安装
打开任意窗口(如 Safari、Finder),在窗口标题栏区域尝试:
- 双指张开 → 窗口应进入全屏
- 双指捏合 → 窗口应退出全屏
- 双指下滑 → 窗口应最小化
- 双指上滑 → 窗口应恢复
如何退出/禁用
- 临时退出:点击菜单栏图标 → 选择"退出"
- 完全卸载:将应用从
/Applications文件夹移到废纸篓 - 撤销权限:前往
系统设置 > 隐私与安全性 > 辅助功能,取消勾选SwishMini
⚙️ 系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | macOS 15.0 或更高版本 |
| 设备 | 配备触控板的 Mac(内置或外接) |
| 架构 | Apple Silicon (M1/M2/M3) 或 Intel |
| 权限 | 辅助功能访问权限 |
已测试应用:
- ✅ Safari
- ✅ Finder
- ✅ Chrome / Chrome Canary
- ✅ 大多数第三方应用
🔐 权限说明
SwishMini 需要以下系统权限才能正常工作:
| 权限 | 用途 | 如何授予 | 如何撤销 |
|---|---|---|---|
| 辅助功能 | 检测窗口信息并执行窗口操作(全屏、最小化等) | 系统设置 > 隐私与安全性 > 辅助功能 勾选应用 | 同路径,取消勾选 |
详细说明
- 辅助功能 (Accessibility):
- ✅ 允许应用获取鼠标下的窗口信息
- ✅ 允许应用控制窗口状态(全屏、最小化、还原)
- ❌ 不会读取窗口内容
- ❌ 不会记录键盘输入
- ❌ 不会采集任何个人数据
重要提示:SwishMini 完全在本地运行,不联网、不采集数据、不发送任何信息。
⌨️ 快捷键
当前版本(v1.0)专注于触控板手势操作,暂不支持键盘快捷键。
计划中的功能:
- 🔜 自定义快捷键绑定
- 🔜 快捷键与手势混合使用
- 🔜 全局快捷键支持
⚠️ 已知问题与限制
-
手势冲突
- 可能与系统自带手势或第三方手势工具(如 BetterTouchTool)冲突
- 建议禁用重复的手势设置
-
窗口类型限制
- 某些系统窗口(如"关于本机")可能不响应
- 全屏空间中的窗口需要先退出全屏
- 受保护的窗口(如系统偏好设置中的某些面板)无法控制
-
权限要求
- 必须授予辅助功能权限才能使用
- 权限变更后需要重启应用
-
Chrome 浏览器
- 使用键盘快捷键模拟(⌘ + Ctrl + F)切换全屏
- 可能与 Chrome 扩展冲突
-
多显示器
- 当前版本主要针对主显示器优化
- 在多显示器环境下的行为可能不一致
🆘 故障排查
问题:手势无效 / 没有反应
解决方法:
-
✅ 检查权限
- 前往
系统设置 > 隐私与安全性 > 辅助功能 - 确认
SwishMini已勾选 - 如果已勾选,尝试取消后重新勾选
- 前往
-
✅ 重启应用
- 完全退出 SwishMini
- 重新启动应用
- 再次测试手势
-
✅ 检查手势位置
- 确保手势在窗口标题栏区域进行
- 标题栏通常是窗口顶部约 30px 的区域
-
✅ 检查触控板
- 确认触控板功能正常
- 在系统设置中测试其他手势是否工作
-
✅ 检查应用兼容性
- 某些应用可能不支持窗口控制
- 尝试在 Safari 或 Finder 中测试
问题:与其他手势工具冲突
解决方法:
- 暂时禁用其他手势工具(如 BetterTouchTool、Magnet)
- 调整其他工具的手势设置,避免重复
问题:Chrome 全屏不工作
解决方法:
- 检查 Chrome 是否禁用了
⌘ + Ctrl + F快捷键 - 检查 Chrome 扩展是否占用了该快捷键
- 尝试在无扩展模式下使用
🔒 隐私与安全
SwishMini 严格遵守用户隐私:
- ✅ 完全本地运行:所有操作在您的 Mac 上完成
- ✅ 不联网:应用不会连接任何服务器
- ✅ 不采集数据:不收集、不存储、不发送任何使用数据
- ✅ 不读取内容:仅控制窗口状态,不读取窗口内容
- ✅ 开源透明:代码公开,欢迎审查
权限使用:
- 辅助功能权限仅用于窗口位置检测和状态控制
- 所有操作均在您明确执行手势时触发
- 不会后台运行任何监控或记录功能
📄 许可证
本项目采用 MIT License 开源协议。
简单来说:
- ✅ 可自由使用、修改、分发
- ✅ 可用于商业用途
- ⚠️ 需保留版权声明
- ❌ 不提供任何担保
🙏 致谢
感谢以下项目和资源的启发:
- MultitouchSupport.framework - macOS 触控板私有框架
- Accessibility API - macOS 窗口控制能力
📧 联系方式
- 作者:江志彬
- 问题反馈:GitHub Issues
- 功能建议:GitHub Discussions
如果 SwishMini 对您有帮助,请给个 ⭐️ Star 支持一下!
Made with ❤️ by 江志彬
SwishMini
Control Any macOS Window with Trackpad Gestures
📺 Demo
✨ Core Features
SwishMini brings intuitive trackpad gesture control to macOS, making window management more efficient.
Gesture Mapping Table
| Gesture | Action | Description |
|---|---|---|
| 👐 Two-Finger Pinch Open | Fullscreen | Switch current window to fullscreen mode |
| 🤏 Two-Finger Pinch Close | Restore | Exit fullscreen (when in fullscreen) |
| 👆 Swipe Up 1s | Close Window | Close current window (when not fullscreen) |
| 👇 Two-Finger Swipe Down | Minimize | Minimize current window to Dock |
| 👆 Two-Finger Swipe Up | Unminimize | Restore minimized window at original location |
🎯 HUD Visual Feedback
Real-time visual feedback is displayed when performing gestures:
- Progress Ring: Shows countdown progress when swiping up to close window
- Color Gradient: Smoothly transitions from orange to red, indicating urgency
- Progress Percentage: Displays current progress in real-time (e.g., 50%, 75%)
- Cancel Indicator: Shows "Cancelled" when releasing or retracting fingers
🌐 Special Support
- Chrome Browser Compatibility: Automatically detects and uses keyboard shortcuts (⌘ + Ctrl + F) to ensure fullscreen works properly in Chrome
- Smart Gesture Recognition: Distinguishes between swipe and pinch actions to avoid false triggers
- Location Memory: After minimizing a window, swipe up near the original location to restore it
🚀 Quick Start
Download & Installation
-
Download the App
-
Installation Steps
- Unzip the downloaded ZIP file
- Drag
SwishMini.appto the/Applicationsfolder - Double-click to open the app
-
Handle Security Warning 🔐
Since SwishMini is not notarized by Apple, you may see a warning on first launch:
"Apple could not verify 'SwishMini' is free of malware that may harm your Mac or compromise your privacy."
Solutions (choose one):
Method 1: Right-Click to Open (Recommended)
- Find
SwishMini.appin Finder - Hold
Controland click (or right-click) the app icon - Select "Open"
- Click "Open" in the dialog that appears
Method 2: Allow in System Settings
- After attempting to open the app, go to
System Settings > Privacy & Security - Scroll to the bottom and find the message about SwishMini being blocked
- Click "Open Anyway"
Method 3: Terminal Command (Advanced Users)
xattr -cr /Applications/SwishMini.appThen double-click to open the app normally.
- Find
-
Grant Permissions ⚠️ Important Step
On first launch, the system will prompt for Accessibility permission:
- Method 1: Click "Open System Preferences" in the system alert
- Method 2: Manually go to
System Settings > Privacy & Security > Accessibility - Check the checkbox next to
SwishMini - Restart the app for permissions to take effect
-
Verify Installation
Open any window (e.g., Safari, Finder) and try these gestures over the window title bar:
- Two-finger pinch open → Window should go fullscreen
- Two-finger pinch close → Window should exit fullscreen
- Two-finger swipe down → Window should minimize
- Two-finger swipe up → Window should restore
How to Quit/Disable
- Temporary Quit: Click menu bar icon → Select "Quit"
- Complete Uninstall: Move the app from
/Applicationsto Trash - Revoke Permissions: Go to
System Settings > Privacy & Security > Accessibility, uncheckSwishMini
⚙️ System Requirements
| Item | Requirement |
|---|---|
| Operating System | macOS 15.0 or later |
| Device | Mac with trackpad (built-in or external) |
| Architecture | Apple Silicon (M1/M2/M3) or Intel |
| Permissions | Accessibility access permission |
Tested Applications:
- ✅ Safari
- ✅ Finder
- ✅ Chrome / Chrome Canary
- ✅ Most third-party applications
🔐 Permissions
SwishMini requires the following system permissions to function:
| Permission | Purpose | How to Grant | How to Revoke |
|---|---|---|---|
| Accessibility | Detect window information and perform window operations (fullscreen, minimize, etc.) | System Settings > Privacy & Security > Accessibility check the app | Same path, uncheck |
Detailed Explanation
- Accessibility:
- ✅ Allows the app to get window information under the mouse cursor
- ✅ Allows the app to control window states (fullscreen, minimize, restore)
- ❌ Does NOT read window content
- ❌ Does NOT record keyboard input
- ❌ Does NOT collect any personal data
Important Note: SwishMini runs completely locally, does not connect to the internet, does not collect data, and does not send any information.
⌨️ Keyboard Shortcuts
The current version (v1.0) focuses on trackpad gesture control and does not support keyboard shortcuts yet.
Planned Features:
- 🔜 Custom keyboard shortcut bindings
- 🔜 Mixed use of shortcuts and gestures
- 🔜 Global shortcut support
⚠️ Known Issues & Limitations
-
Gesture Conflicts
- May conflict with system gestures or third-party gesture tools (e.g., BetterTouchTool)
- Recommend disabling duplicate gesture settings
-
Window Type Limitations
- Some system windows (e.g., "About This Mac") may not respond
- Windows in fullscreen spaces need to exit fullscreen first
- Protected windows (e.g., some System Settings panels) cannot be controlled
-
Permission Requirements
- Accessibility permission must be granted for use
- App needs to be restarted after permission changes
-
Chrome Browser
- Uses keyboard shortcut simulation (⌘ + Ctrl + F) to toggle fullscreen
- May conflict with Chrome extensions
-
Multiple Displays
- Current version primarily optimized for the main display
- Behavior may be inconsistent in multi-display environments
🆘 Troubleshooting
Issue: Gestures Not Working / No Response
Solutions:
-
✅ Check Permissions
- Go to
System Settings > Privacy & Security > Accessibility - Confirm
SwishMiniis checked - If already checked, try unchecking and rechecking
- Go to
-
✅ Restart the App
- Completely quit SwishMini
- Restart the application
- Test gestures again
-
✅ Check Gesture Location
- Ensure gestures are performed over the window title bar area
- Title bar is usually the top ~30px area of the window
-
✅ Check Trackpad
- Confirm trackpad is functioning properly
- Test other gestures in System Settings
-
✅ Check App Compatibility
- Some apps may not support window control
- Try testing in Safari or Finder
Issue: Conflicts with Other Gesture Tools
Solutions:
- Temporarily disable other gesture tools (e.g., BetterTouchTool, Magnet)
- Adjust settings in other tools to avoid duplicates
Issue: Chrome Fullscreen Not Working
Solutions:
- Check if Chrome has disabled the
⌘ + Ctrl + Fshortcut - Check if Chrome extensions are using that shortcut
- Try using without extensions
🔒 Privacy & Security
SwishMini strictly respects user privacy:
- ✅ Completely Local: All operations are performed on your Mac
- ✅ No Internet Connection: The app does not connect to any servers
- ✅ No Data Collection: Does not collect, store, or send any usage data
- ✅ No Content Reading: Only controls window states, does not read window content
- ✅ Open Source & Transparent: Code is public, welcome to review
Permission Usage:
- Accessibility permission is only used for window position detection and state control
- All operations are triggered only when you explicitly perform gestures
- No background monitoring or recording functions
📄 License
This project is licensed under the MIT License.
In Simple Terms:
- ✅ Free to use, modify, and distribute
- ✅ Can be used for commercial purposes
- ⚠️ Must retain copyright notice
- ❌ No warranty provided
🙏 Acknowledgments
Thanks to the following projects and resources for inspiration:
- MultitouchSupport.framework - macOS trackpad private framework
- Accessibility API - macOS window control capabilities
📧 Contact
- Author: 江志彬 (Jiang Zhibin)
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Discussions
If SwishMini is helpful to you, please give it a ⭐️ Star!
Made with ❤️ by 江志彬