Skip to content

ali205412/wf-recorder-gui

Repository files navigation

WF Recorder GUI

CI Release AUR version

A modern, minimal, and sleek GUI for wf-recorder, the Wayland screen recorder. Built with GTK4 and Rust, featuring an intuitive interface and efficient workflow.

Features

  • Modern GTK4 native interface
  • Clean, minimal design
  • Full screen and region capture
  • Multiple audio source options:
    • System audio
    • Microphone
    • No audio
  • Multiple output formats:
    • WebM
    • MP4
    • MKV
  • Custom save location
  • Hardware acceleration support
  • Wayland native

Installation

Arch Linux (Recommended)

Install from AUR:

yay -S wf-recorder-gui

or

paru -S wf-recorder-gui

Other Distributions

Build from source:

  1. Install dependencies (package names may vary):

    • GTK4
    • libadwaita
    • wf-recorder
    • Rust toolchain
  2. Build and install:

git clone https://github.com/ali205412/wf-recorder-gui.git
cd wf-recorder-gui
cargo build --release
sudo install -Dm755 target/release/wf-recorder-gui /usr/bin/wf-recorder-gui
sudo install -Dm644 wf-recorder-gui.desktop /usr/share/applications/wf-recorder-gui.desktop

Usage

  1. Launch the application
  2. Choose your recording options:
    • Select output format (WebM/MP4/MKV)
    • Choose capture mode (Full Screen/Region)
    • Select audio source (System/Microphone/None)
    • Set save location
  3. Click Record to start
  4. Click Stop when finished

Development

Requirements

  • Arch Linux (recommended for development)
  • Dependencies:
sudo pacman -S gtk4 libadwaita wf-recorder base-devel rust

Project Structure

src/
├── audio/       # Audio handling
├── config/      # Configuration management
├── recorder/    # Recording functionality
├── ui/         # User interface components
└── main.rs     # Application entry point

CI/CD Workflows

The project uses GitHub Actions for:

  • Continuous Integration (CI)
    • Building and testing on Arch Linux
    • Code formatting checks
    • Clippy linting
    • Security audits
  • Release automation
    • Building Arch packages
    • Creating GitHub releases
  • Automated AUR updates
    • Publishing and updating the AUR package

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure to:

  • Follow the existing code style
  • Add tests if applicable
  • Update documentation as needed

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • wf-recorder - The underlying screen recording utility
  • GTK - The GUI toolkit
  • All contributors and users of this project

Support

If you encounter any issues or have suggestions:

  1. Check the Issues page
  2. Open a new issue if needed
  3. Provide as much detail as possible:
    • System information
    • Steps to reproduce
    • Expected vs actual behavior