Fork of ali205412/wf-recorder-gui.
A frontend for wf-recorder, the Wayland screen recorder. Built with Rust and iced, featuring a glass-morphism dark theme, responsive layout, and a non-intrusive compact overlay during recording.
- Display picker — select which monitor to record (with position labels on multi-monitor setups)
- Capture modes — full screen or interactive region selection via
slurp - Framerate — 24 / 30 / 60 FPS
- Audio — system audio, microphone, both, or none
- Output formats — WebM, MP4, MKV
- Persistent settings — all options saved automatically
- Error reporting — wf-recorder errors surfaced in a floating popup; invalid region selection (overlapping displays) detected before recording starts
Runtime dependencies:
| Tool | Purpose |
|---|---|
wf-recorder |
Core screen recording |
wlr-randr |
Display geometry and position detection |
slurp |
Interactive region selection (Region mode only) |
pactl |
Audio source detection |
Arch Linux
sudo pacman -S wf-recorder wlr-randr slurp libpulseyay -S recway
# or
paru -S recwayDownload the latest recway-x.x.x-x86_64-linux.tar.gz from the Releases page, extract and place the binary in your PATH:
tar -xzf recway-*.tar.gz
sudo install -Dm755 recway /usr/local/bin/recway# Install build dependencies (Arch)
sudo pacman -S rust libxkbcommon wayland
git clone https://github.com/nabiko02/recway.git
cd recway
cargo build --release
sudo install -Dm755 target/release/recway /usr/bin/recway
sudo install -Dm644 recway.desktop /usr/share/applications/recway.desktop- Launch the application
- Configure your recording:
- Capture mode — Screen (pick a display) or Region (draw with
slurp) - Framerate — 24 / 30 / 60 FPS
- Audio source — System, Micro, both, or neither
- Output format — WebM / MP4 / MKV
- Save location — browse or type a path
- Capture mode — Screen (pick a display) or Region (draw with
- Click Start Recording — a 3-second countdown appears, then the compact overlay
- Click Stop in the overlay when finished
src/
├── audio/ # Audio source detection
├── config/ # Persistent JSON config (~/.config/recway/config.json)
├── recorder/ # wf-recorder subprocess, argument building, geometry validation
├── theme.rs # Glass-morphism design system, responsive scaling
└── main.rs # App state machine, iced update/view
cargo build # debug build
cargo build --release # release build (stripped)
cargo run # run
cargo test --verbose # tests
cargo fmt --all -- --check # format check
cargo clippy -- -D warnings # lint
cargo audit # security audit| Workflow | Trigger | What it does |
|---|---|---|
ci.yml |
push / PR to main |
build, test, fmt, clippy, audit |
release.yml |
push v* tag |
build binary + Arch .pkg.tar.zst, create GitHub release |
publish-aur.yml |
push v* tag |
update AUR package |
MIT — see LICENSE.
- wf-recorder — the underlying recording engine
- iced — Rust GUI framework
- slurp — Wayland region selection