#selection #x11 #screenshot #nexromancers

app hacksaw

轻量级选择工具,适用于截图脚本等

5 个稳定版本

1.0.4 2020年4月1日
1.0.3 2020年3月29日
1.0.1 2020年3月28日

Unix APIs 下的第 402

Download history 19/week @ 2024-03-11 1/week @ 2024-03-18 26/week @ 2024-04-01 7/week @ 2024-04-08 8/week @ 2024-04-22 4/week @ 2024-04-29 2/week @ 2024-05-06 2/week @ 2024-05-13 9/week @ 2024-05-20 13/week @ 2024-05-27 23/week @ 2024-06-03 25/week @ 2024-06-10 18/week @ 2024-06-17 22/week @ 2024-06-24

每月下载量 90

自定义许可

27KB
584

hacksaw 允许您选择屏幕区域

(在x11上)

screencast

安装

依赖

在安装之前,请确保您已安装以下库(此列表非详尽)

  • xcb-shape
  • xcb-xkb

在拥有 apt 的系统上,您应该能够运行

apt install libxcb-shape0-dev libxcb-xkb-dev

一旦您有了依赖项

只需运行 cargo install hacksaw 从 crates.io 安装。

手动安装替代方案

克隆此仓库,cd 进入,然后运行 cargo install --path .

示例

使用 shotgun 捕获选择/窗口的截图并复制到剪贴板

selection=$(hacksaw)  # add hacksaw arguments inside as you wish
shotgun -g "$selection" - | xclip -t 'image/png' -selection clipboard

捕获选择/窗口的截图并保存到文件

selection=$(hacksaw)  # add hacksaw arguments inside as you wish
shotgun -g "$selection" screenshot.png

使用 ffmpeg 记录屏幕区域

#!/bin/sh
#
# record - record an area of the screen

dir=~/medias/videos/records
current=$(date +%F_%H-%M-%S)

mkdir -p "$dir"

hacksaw -n | {
    IFS=+x read -r w h x y

    w=$((w + w % 2))
    h=$((h + h % 2))

    ffmpeg               \
        -v 16            \
        -r 30            \
        -f x11grab       \
        -s "${w}x${h}"   \
        -i ":0.0+$x,$y"  \
        -preset slow     \
        -c:v h264        \
        -pix_fmt yuv420p \
        -crf 20          \
        "$dir/$current.mp4"
}

还有: 使用所选大小和形状打开终端(在 bspwm 上)

特性

  • 引导线 用于在选择开始之前检查精确位置并对齐
    • 类似于流行的 Guides shader for slop
  • 不会在第一次按键时立即退出
    • 在截图您的表情包时像专业人士一样继续输入
    • (仅限平铺窗口管理器) 您在 hacksaw 中仍可以导航窗口
  • 您可以使用任何鼠标按钮进行选择,而不仅仅是左键单击!
    • 除了右键单击,那是取消
    • 通过滚动鼠标滚轮重新启动选择
  • 您可以自定义 颜色宽度 的线条
    • 并且您可以单独自定义选择和引导线的宽度 分别
  • 我提到它是用 RUST 编写的吗?
  • 轻量级且快速
    • 我没有实际上运行过与 slop 的性能比较
  • 是 Thor 的最爱之一
  • 为今天最 先进尖端 的平台 X11 而构建

稳定性

  • 主要功能齐全且相当稳固
  • 当弹出窗口打开时调用 hacksaw 可能会经历错误

用法

USAGE:
    hacksaw [FLAGS] [OPTIONS]

FLAGS:
    -h, --help         Prints help information
    -n, --no-guides    Disable fighter pilot guide lines
    -V, --version      Prints version information

OPTIONS:
    -f, --format <format>
            Output format. You can use:
                  %x for x-coordinate,
                  %y for y-coordinate,
                  %w for width,
                  %h for height,
                  %i for selected window id,
                  %g as a shorthand for %wx%h+%x+%y (X geometry),
                  %% for a literal '%'.
            Other %-codes will cause an error. [default: %g]
    -g, --guide-thickness <guide-thickness>          Thickness of fighter pilot guide lines [default: 1]
    -c, --colour <line-colour>
            Hex colour of the lines (RGB or RGBA), '#' optional [default: #7f7f7f]

    -r, --remove-decorations <remove-decorations>
            Number of (nested) window manager frames to try and remove [default: 0]

    -s, --select-thickness <select-thickness>        Thickness of selection box lines [default: 1]

依赖

~3.5MB
~66K SLoC