English | 中文
为便于快捷键使用的简易的 wf-recorder 的 bash 脚本封装,实现在基于 wlroots 的 wayland 混成器上进行选区录屏。
- 变量配置
- 框选录制
- 声音录制
- 通知提醒
- 自动复制
- wf-recorder
- bash
- grep
- slurp
- libnotify
- libpulse
- wl-copy
- (可选) 添加到 PATH
- (可选) 将脚本绑定到快捷键。
- 第一次执行将启动
slurp
以获取录屏区域,并随后执行录屏。再次运行则将停止录屏并将文件复制到剪贴板。
脚本的行为通过环境变量进行控制。你可以另外编写一个脚本来自定义这些变量。
# 默认情况下可控制文件存放路径
#WFRC_FOLDER="/tmp"
# 默认情况下可控制通知名称,文件名称等
#SCRIPT_NAME="wfrc"
# 锁文件的路径
#WFRC_LOCK="/tmp/WFRCLOCK"
# 控制通知图标
#WFRC_ICON="record"
# 设为 1 进行全屏录屏
#WFRC_FULL_SCREEN=0
# 设为 0 不进行通知
#WFRC_NOTIFY=1
# 你的音频设备
#WFRC_AUDIO_DEV="$(LANG=C pactl list sources | grep 'Name.*output'|cut -d ' ' -f 2)"
#WFRC_FILE_NAME="$WFRC_FOLDER/$SCRIPT_NAME-$(date -u +%Y-%m-%dT%H-%M-%S).mp4"
# 不在 wayland 上运行时的提示信息
#WFRC_NOWAYLAND="No WAYLAND_DISPLAY found. Did you run me on a wayland compositor?"
. /path/to/wfrc "$@"
运行:
LANG=C pactl list sources | grep 'Name.*output'
若输出多行,代表你有多个可用的音频输出设备, 请使用配置脚本并修改 WFRC_AUDIO_DEV
。或禁用你不使用的设备。
wf-recorder 的原因。若 wf-recorder 可通过调整部分命令行选项来解决这一问题,请直接对脚本添加这些选项,这些选项将会直接传递给 wf-recorder 。
参考这里:
To use GPU encoding, use a VAAPI codec (for ex.
h264_vaapi
) and specify a GPU device to use with the-d
option:wf-recorder -f test-vaapi.mkv -c h264_vaapi -d /dev/dri/renderD128
...
对我而言,用
wfrc -c h264_vaapi -d /dev/dri/renderD128
即可。