Skip to content

Best all-in-one screen recording utility for Wayland wlroots compositors, similar to SimpleScreenRecorder

Notifications You must be signed in to change notification settings

Botspot/botspot-screen-recorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

Botspot's Screen Recorder (BSR)

All-in-one screen recording utility for wlroots Wayland compositors like Wayfire, LabWC and Sway.
badge
Botspot Screen Recorder (BSR) makes it easy to record the screen on Wayland Pi OS. Without this, the only real option was to use the wf-recorder command-line tool, which was quite limited in features.
BSR does use wf-recorder in some modes, but it can also record the webcam and the screen at the same time in a "streaming gamer" style. The webcam feed is displayed as a window on the desktop to be captured with the rest of the screen, and it can be stretched and moved in real time. BSR also supports capturing the microphone and system audio both at once, so perfect for making any sort of Linux usage tutorials without needing to buy a physical HDMI capture card.
Of course, video encoding does use some CPU/GPU resources. There is no way around that, but BSR has been optimized as much as possible, also offering downscaling and framerate limiting to help reduce resource usage even further.
BSR is:

  • Super lightweight
  • Just one shell script
  • Aligned with KISS principles
  • Optimized for hardware like Raspberry Pi that lacks GPU-accelerated video encoding

BSR has flexible operation modes.

  • Video source options:
    • Record the screen and webcam. The webcam feed is displayed in a window that is captured in the screen recording.
    • Record only the screen.
    • Record only the webcam directly using ffmpeg.
    • Record no video. (only audio)
  • Audio source options:
    • Capture both system output audio and microphone input.
    • Capture only system audio.
    • Capture only microphone input.
    • Capture no audio. (only video)
  • Video processing options:
    • Record a fixed rectanglular section of the screen. (crop feature)
    • Mirror the webcam feed.
    • Limit the screen recording frame rate.
    • Downscale the recorded screen by a factor of 2. For example, a 1920x1080 screen can be encoded as a 960x540 video file to reduce filesize and CPU usage.

Screenshots:

20250214_07h20m18s_grim
20250214_21h52m07s_grim

Supported systems:

  • 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.

Download and run:

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

Debian packages to install:

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

Arch support:

I don't use Arch, but in theory you just need to install slurp ffmpeg mpv yad wlr-randr v4l-utils wf-recorder from wherever you install packages from.

Usage

  1. Run the script.
  2. Choose your options and click Start recording.
  3. Stop the recording when done.
  4. Profit.
  5. Your chosen presets are saved to ~/.config/botspot-screen-recorder.conf for next time.

Tips for using the on-screen webcam feed

  • 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.

Update to latest version

cd botspot-screen-recorder
git pull

Once this is not in beta, this will be added to Pi-Apps and updates will be handled automatically then.

Command-line flags

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.

Keyboard shortcuts

This is an open discussion. Would you find it useful to launch/start/stop BSR using keyboard shortcuts? Let me know.

Feedback requested!!

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.

Notable open source projects used in BSR:

  • MPV for the on-screen webcam feed
  • wf-recorder for recording the screen
  • ffmpeg used in the background for conversion and encoding

How long did it take to write BSR?

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.

About

Best all-in-one screen recording utility for Wayland wlroots compositors, similar to SimpleScreenRecorder

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published