
grim 截图、slurp 选区、swappy/satty 标注、wf-recorder 录屏、hyprshot Hyprland 脚本——6 款全进官方 Extra 仓库,pacman 直装,覆盖 Wayland 截图录屏全流程。
wlr-screencopy-v1 协议已经形成一条完整工具链:截图用 grim、选区用 slurp、标注用 swappy 或 satty、录屏用 wf-recorder、Hyprland 用户还有现成的一键脚本 hyprshot。6 款工具全部进了官方 Extra 仓库,pacman -S 直装。| 工具 | 类别 | 仓库 | 版本 |
|---|---|---|---|
| grim | 截图核心 | Extra | 1.5.0 |
| slurp | 选区交互 | Extra | 1.5.0 |
| swappy | 截图标注(GTK3) | Extra | 1.8.0 |
| wf-recorder | 屏幕录制 | Extra | 0.6.0 |
| satty | 截图标注(GTK4/现代) | Extra | 0.20.1 |
| hyprshot | Hyprland 一键截图脚本 | Extra | 1.3.0 |
wlr-screencopy-v1 协议,无 GUI,只做一件事:把像素写到文件或 stdout。sudo pacman -S grim# 截全屏,保存到当前目录
grim
# 截指定显示器
grim -o DP-1
# 结合 slurp 手动框选区域
grim -g "$(slurp)"
# 截图并复制到剪贴板(配合 wl-copy)
grim - | wl-copy
# 带时间戳文件名,保存到 ~/Pictures
grim ~/Pictures/$(date +'%s_grim.png')-t jpeg);-s 参数可指定缩放因子,高 DPI 屏幕下截取 1x 物理分辨率时有用。本体只有 18.9 KB,依赖 cairo + wayland + pango,无多余包袱。sudo pacman -S slurp# 框选区域后截图(最常用组合)
grim -g "$(slurp)"
# 点选单个像素(取色模式)
slurp -p
# 选整个显示器,输出显示器名称
slurp -o -f "%o"
# 在 Sway 下选择可见窗口区域(结合 swaymsg + jq)
swaymsg -t get_tree \
| jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' \
| slurp
sudo pacman -S swappy
# 可选:Font Awesome 图标(让工具栏图标正常显示)
sudo pacman -S otf-font-awesome
# 可选:关闭 swappy 后剪贴板内容仍可粘贴
sudo pacman -S wl-clipboard# 经典三件套:框选 → 截图 → 打开标注
grim -g "$(slurp)" - | swappy -f -
# 直接打开已有截图编辑
swappy -f ~/Pictures/screenshot.png~/.config/swappy/config,可设置默认保存目录、文件名格式、默认画笔模式和初始工具:[Default]
save_dir=$HOME/Pictures/Screenshots
save_filename_format=swappy-%Y%m%d-%H%M%S.png
paint_mode=brush
early_exit=falsesudo pacman -S wf-recorder# 录制全屏,输出到 recording.mp4,Ctrl+C 停止
wf-recorder
# 指定输出文件名
wf-recorder -f ~/Videos/$(date +'%Y%m%d_%H%M%S').mp4
# 结合 slurp 框选区域录制
wf-recorder -g "$(slurp)"
# 同时录制音频(默认 PulseAudio/PipeWire 源)
wf-recorder --audio
# 使用 VAAPI GPU 加速编码(大幅降低 CPU 占用)
wf-recorder -f output.mkv -c h264_vaapi -d /dev/dri/renderD128
# 录制到 v4l2 虚拟摄像头(用于视频会议共享屏幕)
wf-recorder --muxer=v4l2 --codec=rawvideo --file=/dev/video2wlr-screencopy-v1 协议,因此支持 Sway、Hyprland、River、Wayfire 等 wlroots based 合成器,不支持 GNOME 或 KDE(它们有自己的截图/录屏 API)。默认编码器是 libx264,可通过 -c 切换为 hevc_vaapi、av1_vaapi 等 GPU 编码器。56
sudo pacman -S satty# wlroots 合成器(Sway)
grim -g "$(slurp -o -r -c '#ff0000ff')" -t ppm - \
| satty --filename - --fullscreen \
--output-filename ~/Pictures/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png
# Hyprland(# 需要转义)
grim -g "$(slurp -o -r -c '##ff0000ff')" -t ppm - \
| satty --filename - --fullscreen \
--output-filename ~/Pictures/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png-t ppm 给 grim 而非 -t png 是刻意的:PPM 是无压缩格式,省去编码/解码往返,管道传输更快。sudo pacman -S hyprshot# 截选区并复制到剪贴板
hyprshot -m region
# 截当前活动窗口
hyprshot -m window
# 截整个显示器
hyprshot -m output
# 截图后同时保存文件(默认存到 ~/Pictures)
hyprshot -m region --output-folder ~/Pictures/Screenshots
# 静默模式(不显示通知)
hyprshot -m region -s~/.config/hypr/hyprland.conf 中绑定快捷键:# PrintScreen 键:框选截图
bind = , Print, exec, hyprshot -m region
# Super+Print:截当前窗口
bind = $mainMod, Print, exec, hyprshot -m window
# Super+Shift+Print:截全屏
bind = $mainMod SHIFT, Print, exec, hyprshot -m outputgrim、slurp、jq、wl-clipboard、libnotify,安装 hyprshot 时这些依赖会一并拉进来。可选依赖 hyprpicker——安装后截图前会先冻结画面,让选区更准确。9hyprshot -m region --output-folder ~/Pictures/Screenshots \
&& satty -f ~/Pictures/Screenshots/$(ls -t ~/Pictures/Screenshots | head -1)grim -g "$(slurp)" - | satty --filename - --fullscreen \
--output-filename ~/Pictures/Screenshots/$(date '+%Y%m%d-%H%M%S').pngwf-recorder -g "$(slurp)" -f ~/Videos/$(date '+%Y%m%d_%H%M%S').mp4grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:-archlinux.org
github.com
github.com
archlinux.org
github.com
archlinux.org
github.com
archlinux.org
archlinux.org
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.