Files
SnapGo/Introduction.md
mamamiyear ceecbb6af4 feat(app): implement basic function
General
- 配置界面支持配置对象存储桶
- 快捷键进入截图
- 一键上传截图 & 复制截图链接

MacOS
- 状态栏指示器和应用图标
2026-06-01 21:17:29 +08:00

37 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SnapGo
SnapGo 是一个以 macOS 为核心体验的截图上传工具,面向“截图后立刻分享链接”的高频场景。它常驻于菜单栏,支持全局快捷键唤起截图覆盖层,在完成区域选择后自动将图片上传到兼容 S3 协议的对象存储,并把最终公开链接写入剪贴板,尽可能减少“截图、保存、上传、复制链接”之间的手动切换成本。
项目当前基于 `Wails + Go + Vue 3` 构建,桌面端负责截图、热键、托盘与系统集成,前端负责设置页与截图交互界面。整体设计围绕“轻量常驻、快速触发、上传即复制”展开,适合作为个人图床工作流中的本地入口工具。
## 核心功能
- 全局快捷键截图:支持通过全局快捷键在任意应用中快速唤起截图流程。
- 区域选择覆盖层:提供接近原生体验的截图选区交互,优先针对 macOS 做了透明覆盖层与窗口层级优化。
- 自动上传到 S3 兼容存储:支持 AWS S3、MinIO、Cloudflare R2、Backblaze B2 及其他兼容 S3 API 的对象存储。
- 自动复制公开链接:上传成功后自动将图片 URL 写入剪贴板,方便直接粘贴到 IM、文档或工单系统。
- 菜单栏常驻与设置面板:通过托盘菜单进入设置,配置热键、存储参数,并测试连接可用性。
- 上传失败兜底:当上传失败时,会将截图落盘到本地临时目录,避免截图结果丢失。
## 典型使用流程
1. 首次启动后,在设置页中填写 S3 兼容对象存储的连接信息。
2. 保存配置并测试连通性,确认目标 Bucket 可写。
3. 使用默认快捷键 `cmd+shift+a`,或自定义快捷键,随时发起截图。
4. 选择需要截取的区域并确认。
5. 应用自动上传截图,并将生成的公开链接复制到剪贴板。
## 项目定位
SnapGo 当前更偏向一个面向个人使用的高效工具,而不是“大而全”的截图平台。它的重点不在复杂标注或云端管理能力,而在于把“截图并生成可分享链接”这条链路压缩到尽可能短,尤其适合开发者、产品、测试或需要频繁在聊天工具中分享截图的用户。
虽然工程结构中保留了跨平台方向的设计,但现阶段的核心交互与系统集成主要围绕 macOS 打磨,包括菜单栏形态、原生覆盖层、窗口透明化处理以及与系统截图能力的衔接。因此,如果你希望获得完整体验,macOS 是当前最合适的运行平台。
## 技术实现概览
- 桌面壳与应用编排:Go + Wails
- 设置界面与截图覆盖层:Vue 3 + TypeScript + Vite
- 全局快捷键:`golang.design/x/hotkey`
- 对象存储接入:AWS SDK for Go v2S3 兼容实现)
- macOS 截图与窗口控制:系统 `screencapture` 命令 + AppKit 原生能力