Go to file
Skylar "The Cobra" Widulski c39b1a44cd
Update copyright
Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
2024-01-03 10:16:40 -05:00
doc Change output numbers to output names 2023-05-23 03:05:13 -04:00
LICENSE init 2023-05-12 22:05:36 -04:00
README.md Change output numbers to output names 2023-05-23 03:05:13 -04:00
wf-shadow Update copyright 2024-01-03 10:16:40 -05:00
wf-shadow-tui Update copyright 2024-01-03 10:16:40 -05:00



wf-shadow is a script written in order to fill the void in instant-replay software for Wayland, specifically wlroots compositors. It uses wf-recorder and wofi in order to accomplish the task.


WARNING: Do NOT use Ctrl+C on a wf-shadow -s session.

USAGE: wf-shadow OPTION [OPTIONS...]

	-s, --start [OUTPUT]	Start a wf-shadow instance with output number OUTPUT.
	-r, --record [OUTPUT]	Record the last few moments of video using a wofi menu.
	-e, --end [OUTPUT]	End wf-shadow instance with output number OUTPUT.
	-a, --audio DEVICE	Use DEVICE for audio recording. Passed to wf-recorder -a.
	-V, --video DEVICE	Use DEVICE for video encoding. Passed to wf-recorder -d.
	-A, --acodec CODEC	Use CODEC as the audio codec in ffmpeg encoding.
	-c, --vcodec CODEC	Use CODEC as the video codec in ffmpeg encoding.
	-n, --no-audio	Disable audio recording. Overrides audio options.
	-N, --no-video	Disable video recording. Overrides video options.
	-y, --yes-audio	Enable audio recording. Overrides -n.
	-Y, --yes-video	Enable video recording. Overrides -N.
	-R, --raw-record OUTPUT FILE SECONDS	Low level record. Passed directly to the \`record\` function.
	-v, --verbose	Verbose output.
	-h, --help	Show this menu.
	--version	Display version information.

For a more in-depth guide, see wf-shadow(1)


wf-shadow depends on wf-recorder, wofi (optional), wlr-randr, and, obviously, bash.

wf-shadow-tui depends on dialog alongside all of these programs.


Package Manager


To install wf-shadow on Arch-based distributions, download and install the wf-shadow package from the AUR.

If you would like the latest, maybe less stable version, install wf-shadow-git from the AUR.

Both packages were made by d4ksh.

Manual Installation

Put this script somewhere in your $PATH and set the executable bit with chmod +x. To find which directories are in your $PATH, run sed 's/:/\n/g' <<< "$PATH".


Writing issues

Make sure to state as many details relating to wf-shadow as possible when making an issue. These include, but are not limited to: version, dependency versions, and verbose (-v) output.

Common issues

"A wf-shadow instance is already running on display X" but no wf-shadow is running.

End the nonexistent session with wf-shadow -e X.

Merge requests

Make sure to always keep the style of code used in wf-shadow when requesting a merge (we don't want inconsistent or unreadable code!)