Skip to content

Repository files navigation

WayCast

WayCast is a modern Wayland screen casting application that streams your desktop or selected windows to web browsers over your local network with minimal latency.

License Platform

Why WayCast?

Born from a creative need: WayCast was created out of necessity during video color grading work. When you're editing in a color-managed environment and your single desktop monitor isn't enough—you need to see how your work looks on real OLED screens, on calibrated tablets, on phones, all in real-time as you adjust.

For creators, by a creator: Whether you're color grading video, designing graphics, editing photos, or doing any visual work where accurate color representation matters, WayCast lets you:

  • Preview your desktop on multiple devices simultaneously
  • Use your tablet's OLED screen as a reference monitor
  • Check how content looks on different displays without export/import cycles
  • Work from your Linux workstation while monitoring on calibrated mobile displays
  • Stream your creative workflow to clients or collaborators instantly

No more alt-tabbing between monitors. No more exporting test files. Just instant, live feedback on the screens that matter.

Features

  • Screen & Window Capture: Share your entire screen or individual windows
  • Web-Based Streaming: View streams directly in any modern web browser—no client software needed
  • QR Code Connection: Instantly connect from mobile devices by scanning a QR code
  • Low Latency: Optimized streaming pipeline for real-time responsiveness
  • Modern GTK4 Interface: Clean, native GNOME integration using Adwaita

Requirements

System Requirements

  • OS: Linux with Wayland (GNOME, KDE Plasma 6, Sway, etc.)
  • Desktop Portal: XDG Desktop Portal with ScreenCast support
  • Dependencies:
    • Python 3.10+
    • GTK 4
    • GStreamer 1.0
    • FFmpeg 7.x (with H.264 encoder support)
    • PipeWire

Usage

  1. Launch WayCast from your application menu or terminal
  2. Click "Select Screen/Window" to choose what to share
  3. Scan the QR code or navigate to the displayed URL from any device on your network
  4. View the stream in your browser—it starts automatically

The stream uses H.264/MPEG-TS for broad browser compatibility and plays using mpegts.js for low-latency live playback.

Architecture

  • Frontend: GTK4/Adwaita UI with XDG Desktop Portal integration
  • Capture: PipeWire file descriptor passed to GStreamer pipewiresrc
  • Encoding: FFmpeg with OpenH.264 (software) or hardware encoders (VAAPI/QSV/NVENC when available)
  • Streaming: Flask HTTP server with chunked Transfer-Encoding
  • Playback: Browser-side using mpegts.js for MPEG-TS stream parsing

License

Licensed under the Apache License, Version 2.0. See COPYING for details.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

About

A simple and fast Adwaita screen share for creators

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages