Skip to content

Simple Recorder

Fit an app window to a video shape and record it, ready to upload. No cropping, no black bars, no editing afterwards.

Free and MIT licensed. One bash script on top of ffmpeg and KWin. Pick a window, pick YouTube, Shorts or square, and press q when you are done.

Copy
npm install -g simple-recorder

srec chrome              # record Chrome at 16:9
srec -p shorts discord   # 9:16 for Shorts and Reels
# press q to stop

What you get

  • The window takes the video shape

    srec resizes the window to 16:9, 9:16, 1:1 or 4:3, as large as your screen allows. The video needs no crop and has no black bars.

  • Presets for where it goes

    YouTube at 1080p, 720p or 4K, Shorts and Reels at 1080x1920, square for Instagram and X, and 4:3 for slides. Add your own under ## Your presets.

  • Nothing covers the recording

    The title bar goes away and the window stays on top, so a window you click cannot cover it. Both come back when you stop.

  • Microphone and system sound

    Record the mic, the sound your computer plays, both or none with -a mic|sys|both|none. Optional separate .m4a files for editing.

  • Uses the GPU when it can

    With encoder = auto, srec picks the NVIDIA h264_nvenc encoder when it works, so the CPU stays free for the app you record.

  • Tells you what is wrong

    A live status line shows dropped frames and speed in yellow when they slip. A missing tool or a typo in the config gives a clear message, never a failed recording.

One plain config file

The first start runs srec setup, which asks for the main choices and writes ~/.config/simple-recorder/config. It uses the key = value format that mpv, git and systemd use.

Every setting is in the file with its default, grouped as Basic and Advanced. A bad value gives a warning with the line number, and srec uses the default for that value.

srec config opens the file. srec config reset writes a fresh one and keeps the old one as .bak.

~/.config/simple-recorder/configCopy
## Basic
default_preset = youtube             # preset used when you press Enter
fps = 60                             # frames per second
mic = yes                            # record the microphone
system_audio = no                    # record the sound your computer plays
out_dir = ~/Videos/simple-recorder   # where videos are saved

## Your presets
[preset.mine]                        # listed first when you pick
window = 21:9
video  = 2560x1080

Recording in a minute

  1. Install the tools. On Fedora: sudo dnf install ffmpeg xprop qt6-qttools fzf pulseaudio-utils (ffmpeg from RPM Fusion). On Debian or Ubuntu: sudo apt install ffmpeg x11-utils qdbus-qt6 fzf pulseaudio-utils. If one is missing, srec names it with the install command.
  2. Install srec. Run npm install -g simple-recorder, or download the single srec script from the latest GitHub release into ~/.local/bin.
  3. Record. Run srec and pick a window and a preset from the lists, or name them: srec -p youtube firefox. Press Enter for the default preset.
  4. Stop and upload. Press q. The file is in ~/Videos/simple-recorder, already the right size for the preset.

Good to know

  • It works on KDE Plasma 6 on X11 only. Wayland and other desktops are not supported yet. On the login screen, pick "Plasma (X11)".
  • Fedora ships ffmpeg-free, which has no libx264. Swap it for ffmpeg from RPM Fusion.
  • A ratio preset scales the window to the video size. For sharp, unscaled video, use exact-1080p and set your panels to auto-hide.
  • It is version 0.1.0. Check that nothing private is visible before you record.

Questions

What is Simple Recorder?
A command line screen recorder for Linux. It resizes one app window to the shape of the video you want, records only that window with ffmpeg, and saves a file ready for YouTube, Shorts, Reels or Instagram.
Is Simple Recorder free?
Yes. It is MIT licensed and free, on npm and on GitHub.
Does it work on Wayland or GNOME?
Not yet. It needs KDE Plasma 6 on X11, because KWin resizes the window and X11 lets ffmpeg record a single window.
How is it different from OBS Studio?
OBS is a full studio with scenes and sources. srec does one job from the terminal: it fits a window to a video shape and records it, with no scene setup and no crop afterwards.
Can I move the window while recording?
Yes. The recording follows the window. A minimized window is restored first, because X11 cannot record a minimized window.
Which file formats does it save?
MKV by default, or MP4 and MOV through `container` in the config. srec never overwrites a file: a second `demo.mkv` becomes `demo-2.mkv`.

Record your next video with it

Issues and stars on GitHub help other people find it.