@tobi: 更好的截图标注工具即将登陆 Omarchy Quattro。https://github.com/tobi/omasnap
摘要
Omasnap 是一款适用于 Omarchy 和 Hyprland 的全新原生 Wayland 截图与标注工具,提供矢量图层、OCR 捕获以及通过 Wayland 协议实现的干净窗口捕获。
查看缓存全文
缓存时间: 2026/08/11 03:40
更好的标注截图工具即将登陆 Omarchy Quattro。 https://t.co/sWQ4Um1os1 https://t.co/rh9MH9ZbDv
tobi/omasnap
Source: https://github.com/tobi/omasnap
Omasnap
一个为 Omarchy 和 Hyprland 设计的原生 Wayland 截图与标注覆盖层。它在映射独占 layer-shell 表面之前捕获当前聚焦的显示器,因此编辑器永远不会出现在自己的截图中。编辑器将标注保留为可移动、可调整大小的矢量图层,并在缩放显示器上保留显示器的原生像素。
功能特性
- 自由选区、窗口和全显示器捕获模式。
- 通过 Wayland 图像复制协议实现干净的窗口表面捕获。如果原生捕获失败,窗口选择器会保留原样;Omasnap 绝不会用桌面裁剪来代替。
- 选择/移动/调整图层大小、鼠标滚轮缩放,以及八个外部重新裁剪手柄。
- 箭头、直线、平滑手绘笔迹、矩形、编号标记和可编辑的 Neucha 文本。
- 每个图层可使用预设或自定义颜色、撤销/重做历史、OCR 区域捕获、网格渐变背景以及渲染投影。
- 在
/tmp/omasnap/snapshot-.png下保存抗崩溃的工作快照,选择后立即写入,并在每次完成编辑后覆盖。保存操作会将该文件移动到~/Pictures/Screenshots;剪贴板输出也会流式输出同一个 PNG。 - 通过
wl-copy/wl-paste验证 PNG 剪贴板输出,并默认在~/Pictures/Screenshots下生成带时间戳的文件。 - 在分数或整数缩放显示器上正确导出原生像素。
平台范围
受支持的目标是 Wayland + Hyprland,并以 Omarchy 作为主要集成环境。渲染器、图层表面、剪贴板和干净窗口捕获均使用 Wayland 协议;显示器/窗口发现目前调用 hyprctl。grim 在图层映射之前捕获显示器。选择界面显示该捕获帧,而标注编辑器则在实时桌面上使用半透明图层遮罩,并且只绘制所选捕获内容。其他 Wayland 合成器在提供等效的显示器和窗口发现功能后,也可以支持该应用程序;1.0 并不声称提供通用 Wayland 支持。应用程序使用的运行时命令:
hyprctlgrimwl-copy和wl-pastetesseractomarchy-notification-send(如果可用);完成后的捕获会包含缩略图,点击后通过xdg-open打开。通知失败不会使输出失效。
在 Omarchy 上安装
克隆仓库并运行 Omarchy 安装脚本:
git clone https://github.com/tobi/omasnap.git
cd omasnap
./install-omarchy
安装程序使用 Omarchy 的软件包助手来安装缺失的依赖,在 ~/.cache/omasnap 中构建,并安装到 ~/.local 下。它不会修改 Hyprland 配置。
Hyprland 绑定
将其粘贴到加载了 require("default.hypr.omarchy") 之后的 Lua 配置中:
hl.unbind("PRINT")
hl.unbind("F12")
hl.unbind("ALT + SHIFT + 4")
o.bind("PRINT", "Screenshot", "omasnap")
o.bind("F12", "Screenshot", "omasnap")
o.bind("ALT + SHIFT + 4", "Screenshot", "omasnap")
hl.layer_rule({
match = { namespace = "^omasnap$" },
no_anim = true,
animation = "none",
})
应用并验证:
hyprctl reload
hyprctl configerrors
hyprctl binds -j | jq -c \
'[.[] | select(.description == "Screenshot") | {modmask,key,description}]'
omarchy plugin add 有意不被使用。Omarchy 插件是 Quickshell QML 扩展;它们不会安装原生可执行文件或系统软件包。在运行 install-omarchy 之前设置 OMASNAP_PREFIX,以使用 ~/.local 以外的前缀。
手动 Arch Linux 构建
安装完整的构建/运行时依赖集:
sudo pacman -S --needed \
base-devel cmake ninja pkgconf qt6-base layer-shell-qt \
wayland wayland-protocols hyprland grim wl-clipboard \
tesseract tesseract-data-eng
构建并安装:
cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="$HOME/.local"
cmake --build build --parallel
cmake --install build
安装步骤会将以下文件放到:
~/.local/bin/omasnap~/.local/share/applications/omasnap.desktop~/.local/share/licenses/omasnap/Neucha-OFL.txt
确保 ~/.local/bin 在 PATH 中,然后验证已安装的 CLI:
omasnap --version
omasnap --help
CLI 捕获模式
不带参数运行会打开自由区域选择:
omasnap
显式启动模式:
omasnap --capture-region
omasnap --capture-window
omasnap --capture-fullscreen
也接受兼容的位置参数名称:
omasnap region
omasnap windows
omasnap fullscreen
omasnap smart # 映射到区域选择
这些选项决定初始选择的内容;编辑器仍然控制结果是复制、保存,还是两者兼有。
环境变量覆盖:
OMASNAP_SCREENSHOT_DIR="$HOME/Pictures/Captures" omasnap
OMASNAP_OCR_LANGS="eng+deu" omasnap
在向 OMASNAP_OCR_LANGS 添加语言之前,请先安装相应的 Tesseract 语言数据。
操作控制
捕获选择
| 输入 | 操作 |
|---|---|
| 拖动 | 选择区域 |
Space | 在区域/窗口选择之间切换 |
SUPER + Arrow | 在窗口模式下在各窗口之间移动 |
Enter | 捕获高亮窗口 |
Ctrl+A | 选择整个聚焦显示器 |
Esc, Esc | 关闭 |
标注编辑器
| 输入 | 操作 |
|---|---|
V | 选择/移动/调整图层大小;滚轮缩放所选图层 |
A | 箭头 |
L | 直线 |
F | 手绘笔迹 |
C | 编号标记 |
R | 矩形 |
T | Neucha 文本 |
O | 拖动 OCR 区域并复制识别到的文本 |
B | 切换背景 |
1–6 | 设置标注颜色 |
| 滚轮 | 缩放所选图层或更改当前工具大小 |
| 双击文本 | 重新打开文本编辑 |
Delete | 删除所选图层 |
Ctrl+Z | 撤销 |
Ctrl+Shift+Z, Ctrl+Y | 重做 |
Ctrl+C | 仅复制 PNG |
Ctrl+S | 仅保存 PNG |
Enter | 复制并保存 |
Esc | 返回选择模式;再次按下关闭 |
创建工具在放置一次后返回选择模式,且不会选中新图层。在选择模式下,箭头和直线只显示两个端点手柄;其他图层显示选择边界。图像外部的八个蓝/白手柄可重新裁剪图像的角或边。
开发与验证
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
QT_QPA_PLATFORM=offscreen \
./build/omasnap-smoke /tmp/omasnap-smoke
该冒烟测试可执行文件会覆盖区域/窗口/全屏启动模式、捕获选择、临时快照更新、标注工具、撤销/重做、矢量移动和缩放、文本编辑、OCR、原生 DPI 输出、仅显示端点的直线选择,以及外部裁剪手柄。
.github/workflows/build-linux.yml 在 Arch Linux 容器中执行相同的发布构建和交互冒烟测试,暂存 CMake 安装结果,并上传带版本号的 Linux 构建产物。v* 标签还会将该构建产物附加到对应的 GitHub 发布中。
致谢
捕获和标注工作流程受到了三款优秀截图工具的启发:
- Shottr (https://shottr.cc/) — 快速的区域/窗口捕获、OCR 和精致的背景。
- Satty (https://github.com/Satty-org/Satty) — 专注且原生的 Wayland 标注工作流程。
- Flames
相似文章
@tobi: omasnap 更新:自首次分享以来约70个PR,新增多行文本、剪切部分、聚光灯+放大镜、可固定截图等功能
Omasnap 已更新,包含超过70个PR,新增了多行文本、剪切部分和改进的编辑功能,同时保持其轻量级的800KB二进制文件,适用于Wayland和Hyprland环境。
@tobi: omasnap 现在有好多很棒的功能。这是文字 OCR。连这个都能看起来很炫酷。
Tobi 强调了 omasnap 的新功能,特别是文字 OCR 功能,增强了其外观。
展示HN:Omacosy – 适用于macOS的Omarchy风格平铺桌面,无需SIP
Omacosy是适用于macOS的Omarchy风格平铺桌面环境,提供Hyprland的dwindle布局、焦点跟随鼠标和统一主题切换等功能,具有低内存占用。
@tobi: 软件的未来
来自@tobi的一条推文,讨论软件的未来,强调他完全可定制的操作系统,并提及@dhh的Omarchy。
@hasantoxr: 我找到了为LLM时代打造的OCR工具。它叫olmOCR。olmOCR可以处理PDF、扫描件、PNG和JPEG,并将其转…
olmOCR 是来自Ai2的开源OCR工具,能够将PDF、扫描件和图像转换为干净的Markdown格式,旨在通过保留阅读顺序和处理复杂布局,为LLM流水线准备文档。