Hardware accelerated screen recording software for Linux. Still pre-alpha (see features/roadmap below).
- Written in Zig (0.16.0)
- Video encoding with Vulkan Video (vulkan-zig)
- UI built with imgui and SDL3
- Muxing/Audio encoding with FFmpeg
# Spacecap will be installed to ~/.local/bin/spacecap
# Install
curl -LsSf https://spacecap.org/install | sh
# Uninstall
curl -LsSf https://spacecap.org/install | sh -s -- --uninstall- Replay buffer (in memory)
- Recording
- Screenshots
- Global keybinds
- Desktop/window capture
- Capture preview
- File browser
- Video editor
- Trim clips
- Export in a variety of formats
- Adjust audio levels
- Windows support
- A GPU that supports Vulkan Video encoding
NOTE: So far this has only been tested on an Nvidia GPU (RTX 3080). AMD will be supported, I just have no way of testing at this time.
- Wayland
- Pipewire
- Updated graphics drivers (e.g. nvidia-open)
- Windows is not yet supported. Spacecap is architected in such a way that it can be cross platform. For Windows support, the audio/video capture interfaces need to be implemented. It's on the roadmap, but is not currently a priority.
Shortcuts can be configured in your system settings. Spacecap configures global shortcuts via the XDG Desktop Portal. See the list of supported desktop environments here.
The Spacecap CLI can be used to send commands:
spacecap -s save-replaySee all available commands:
spacecap -hNiri
binds {
Mod+Shift+R { spawn-sh "spacecap -s save-replay"; }
}Hyprland
hl.bind(
"SUPER + SHIFT + R",
hl.dsp.exec_cmd("spacecap -s save-replay")
)Nix is required for development.
# Build
nix develop -c zig build -Dnix
# Run
nix develop -c zig build run -Dnix
# Test
nix develop -c zig build test -DnixBy default, Spacecap only writes error logs to error.log. Set the
SPACECAP_LOG_LEVEL environment variable to debug, info, warning, or
error.
Crash logs are written to crash.log, which happens when a panic occurs.
- Linux:
$XDG_CONFIG_HOME/spacecap, or$HOME/.config/spacecap - Windows:
%APPDATA%\spacecap.
Spacecap uses the XDG desktop portal screencast permission store to restore the previous capture source. If the portal permission database gets corrupted, restore may stop working even after selecting a source again. This has happened to me after my main disk filled up unexpectedly.
To reset only the screencast portal permissions, delete the database and then reboot.
# Delete
rm ~/.local/share/flatpak/db/screencast
# OR move it to a backup
mv ~/.local/share/flatpak/db/screencast ~/.local/share/flatpak/db/screencast.bak
reboot
