#selection #screenshot #x11 #nexromancers

bin+lib hacksaw-x11rb

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

1 个稳定版本

1.0.5 2021 年 9 月 15 日

#466 in Unix API

自定义许可证

30KB
683

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 .

Nixpkgs

hacksaw 在 NUR 下的 nexromancers 中作为 nur.repos.nexromancers.pkgs.hacksaw

示例

使用 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 上)

特性

  • 辅助线,在开始选择前检查精确位置并排列
    • 就像 slop 的流行 Guides 着色器一样
  • 首次按键时不会立即退出
    • 在截图您的表情包时像专业人士一样继续输入
    • (镶嵌wm专用) 即使在Hacksaw中,您仍然可以导航窗口。
  • 使用任何鼠标按钮选择,而不仅仅是左键点击!
    • 除了右键点击,那将取消操作。
    • 通过滚动滚轮重新启动选择。
  • 您可以自定义线的 颜色宽度
    • 并且您可以分别自定义选择和辅助线的 宽度
  • 我提到它是用 RUST 编写的了吗?
  • 轻量级且快速。
    • 我没有实际运行过性能比较,以 slop 为例。
  • 是雷神最喜欢的之一。
  • 专为今天最先进和最前沿的平台 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]

依赖项

~5.5MB
~105K SLoC