Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESXScreenshot

ESXScreenshot 是一款轻量级 macOS 截图工具,面向日常办公、开发调试、文档编写和快速标注截图场景。它支持区域截图、窗口截图、全屏截图、长截图、重复上次区域、冻结区域截图等能力,并提供菜单栏入口、全局快捷键、截图确认编辑、自动保存、复制到剪贴板和多语言界面。

项目基于 Objective-C / Cocoa 开发,使用 Masonry 编写自动布局。普通用户可以直接下载 Release 中的打包文件使用;开发者可以克隆源码后在 Xcode 中编译、修改和二次开发。

功能特性

  • 区域截图、窗口截图、全屏截图和主屏幕截图。
  • 长截图、重复上次区域、冻结区域截图和延时截图。
  • 菜单栏常驻入口,支持从菜单快速触发截图。
  • 支持全局快捷键,默认区域截图快捷键为 Control + Option + 5,默认全屏截图快捷键为 Control + Option + 3
  • 截图确认窗口支持撤销、重做、缩放、保存、钉图和取消截图。
  • 标注工具支持矩形、圆形、箭头、文字、马赛克和常用颜色。
  • 截图后可自动复制到剪贴板,也可自动保存为 PNG 文件。
  • 支持自定义保存目录,文件名会自动包含时间信息。
  • 支持截图时隐藏应用窗口,减少截图内容干扰。
  • 支持随系统启动、屏幕录制权限说明和隐私相关设置。
  • 支持多语言本地化,包含中文、英文、德语、法语、西班牙语等语言。

系统要求

  • macOS 13.0 或更高版本。
  • Xcode 15 或更高版本用于源码编译。

下载安装

如果你只是想直接使用 App,可以到 GitHub Releases 下载最新版本:

  1. 下载 ESXScreenshot.dmgESXScreenshot.zip
  2. ESXScreenshot.app 拖入 Applications 文件夹。
  3. 首次启动时,根据 macOS 提示授予必要权限。

如果应用没有经过 Apple Developer ID 签名和公证,macOS 可能会提示无法直接打开。可以在 Finder 中右键点击 App,选择“打开”,再确认启动。正式分发时建议使用 Developer ID 签名并完成 Apple notarization。

权限说明

截图工具需要部分系统权限才能正常工作:

  • 屏幕录制权限:用于读取屏幕内容并完成截图。
  • 辅助功能权限:用于部分窗口隐藏、滚动截图或自动化操作。
  • 登录项权限:用于开启随系统启动。

你可以在“系统设置 > 隐私与安全性”中管理这些权限。

从源码编译

克隆仓库:

git clone https://github.com/your-name/ESXScreenshot.git
cd ESXScreenshot

使用 Xcode 打开项目:

open ESXScreenshot/ESXScreenshot.xcodeproj

也可以使用命令行构建:

xcodebuild -project ESXScreenshot/ESXScreenshot.xcodeproj -scheme ESXScreenshot -configuration Debug build

项目已在源码中集成 Masonry,不需要额外通过 CocoaPods 或 Swift Package Manager 安装依赖。

打包发布

建议以 GitHub Releases 的方式发布可直接使用的构建产物:

  1. 使用 Release 配置构建 App。
  2. 使用 Developer ID 对 App 签名。
  3. 将 App 打包为 .dmg.zip
  4. 提交 Apple notarization 并 staple 公证结果。
  5. 在 GitHub Releases 中创建版本,例如 v1.0.0
  6. 上传打包文件,并写清版本更新说明。

如果只是内部测试,也可以先发布未签名版本,但需要在说明中提醒用户 macOS 可能会出现安全提示。

项目结构

ESXScreenshot/
  ESXScreenshot.xcodeproj      Xcode 项目文件
  ESXScreenshot/               App 源码、资源和本地化文件
    Vendor/
      Masonry/                 自动布局依赖
UI/                            UI 设计参考图
docs/                          项目文档

核心模块

  • ESSettingsManager:管理保存目录、快捷键、启动项和偏好开关。
  • ESHotKeyManager:注册和刷新全局快捷键。
  • ESScreenshotManager:负责屏幕、窗口和区域截图。
  • ESScreenshotWorkflow:串联截图后的复制、保存和结果处理流程。
  • ESAppCoordinator:协调按钮、菜单栏和快捷键触发的截图动作。
  • ESCaptureOverlayController:区域截图选择遮罩。
  • ESWindowCaptureOverlayController:窗口截图选择遮罩。
  • ESScreenshotLongCaptureController:长截图流程控制。
  • ESScreenshotConfirmationWindowController:截图确认、编辑和保存窗口。
  • ESScreenshotEditorView:截图标注画布。
  • ESScreenshotPinManager:管理钉图窗口。
  • ESStatusItemController:管理菜单栏入口。

贡献

欢迎提交 issue 和 pull request。建议在提交前先确认:

  • 代码保持简单、清晰、易读。
  • 新增函数、方法、类型和属性添加中文注释。
  • 涉及 UI 的改动尽量附带截图说明。
  • 提交信息同时包含中文和英文描述。

License

目前仓库尚未添加开源许可证。正式公开前建议添加 MIT License,方便其他开发者自由使用、修改和分发。

About

A lightweight macOS screenshot tool with region capture, window capture, long capture, annotation, hotkeys, and auto-save.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages