![]()
All-in-one simple screen recording tool for wlroots-based Wayland compositors like LabWC, Wayfire, and Sway.
- Record audio
- Record the screen
- Record your webcam
- Record the sound going to the speakers
- Or all of the above, all at once! 😀
BSR is:
- Super lightweight
- Just one shell script
- Aligned with KISS principles
- Ready to do its best on hardware that lacks hardware-accelerated video encoding (such as Raspberry Pi)
BSR has flexible operation modes.
| Screen + Webcam | Screen only | Webcam only | None | |
|---|---|---|---|---|
| System Audio | ✅ Supported |
✅ Supported |
✅ Supported |
✅ Supported |
| Microphone | ✅ Supported |
✅ Supported |
✅ Supported |
✅ Supported |
| Both | ✅ Supported |
✅ Supported |
✅ Supported |
✅ Supported |
| None | ✅ Supported |
✅ Supported |
✅ Supported |
- Video processing options:
- Record a fixed rectanglular section of the screen. (crop feature)
- Mirror the webcam feed.
- Custom screen recording frame rate.
- Custom video quality (high/medium/low)
- Downscale the output video by a factor of 2. For example, a 1920x1080 screen or webcam can be encoded as 960x540 video file to reduce filesize and CPU usage.
- Reduce video file size by 60% without quality reduction, by re-encoding the video file with libx264's
slowercompression preset.
- Any distro using a Wayland wlroots-based compositor.
- For audio capture, your system needs to be running PipeWire on top of Pulseaudio. If your system only uses Pulseaudio, contact me and I can try to see how possible it is to add support for your setup. It should be easy.
git clone https://github.com/Botspot/botspot-screen-recorder
./botspot-screen-recorder/screen-recorder.sh
On first run, BSR adds a convenient launcher to the start menu. To remove it from the start menu, run rm ~/.local/share/applications/bsr.desktop
None. The script installs them for you. For the sake of completeness, here they are: (most of these are just used to compile wf-recorder)
slurp ffmpeg ninja-build git meson mpv yad g++ wlr-randr v4l-utils wayland-protocols libavutil-dev libavfilter-dev libavdevice-dev libavcodec-dev libavformat-dev libswscale-dev libpulse-dev libgbm-dev libpipewire-0.3-dev libdrm-dev
This user says this command works on Arch:
If BSR detects all necessary packages are installed, it should not try to use apt to install anything. Let me know otherwise.
sudo pacman -S --needed ffmpeg gcc git meson mpv ninja slurp v4l-utils wf-recorder wlr-randr yad
- Run the script.
- Choose your options and click Start recording.
- Stop the recording when done.
- Profit.
- Your chosen presets are saved to
~/.config/botspot-screen-recorder.conffor next time.
- It can be paused using the pause button in the middle of the window.
- It can be resized and moved in real time. Click and drag anywhere on the window to move it.
- Double-click the webcam feed to toggle fullscreen. Press Escape to exit fullscreen.
- To keep the webcam feed visible above other windows, use your Wayland compositor to do it.
- If you are using the LabWC compositor, press Alt+Space, then click Always on Top.
- If you are using Wayfire, I am not aware of an easy way to do this. :(
Simply run BSR. It auto-updates using git pull.
There are no command line flags. Go directly use wf-recorder for that. If you think I should add a new option, let me know.
This is an open discussion. Would you find it useful to launch/start/stop BSR using keyboard shortcuts? Let me know.
This is meant to become the SimpleScreenRecorder for wlroots. Contact me if you want to see a feature or option added, or if anything is not working as expected.
- MPV for the on-screen webcam feed
- wf-recorder for recording the screen
- ffmpeg used in the background for conversion and encoding
Just one night of coding nonstop instead of sleeping. From start to finish it was roughly 9 hours to write these 300 lines of shell script.

