Skip to content

opengeos/virtual-screen

Repository files navigation

Virtual Screen

AUR version

Virtual Screen is a Tauri desktop app for using any browser as a KDE Linux second-screen client.

Requirements

  • KDE Linux desktop.
  • An HDMI dummy plug connected to the host computer so the system exposes an additional display output.
  • A client device with a modern web browser on the same local network.

Installation

Download the latest Linux package from the GitHub Releases page, then install the package for your distribution.

  • Debian or Ubuntu: download the .deb package.
  • Fedora, openSUSE, or other RPM-based distributions: download the .rpm package.
  • Arch-family systems: download the release binary when available, or build from source.

Current MVP

  • React and Tauri control panel with QR pairing.
  • Local Rust server with /health, /client/:token, and /signal/:token.
  • One-time token pairing with automatic expiry.
  • KDE X11 and KDE Wayland compatibility detection.
  • GStreamer capability checks for webrtcbin, H.264, and VP8.
  • Browser viewer page for client devices.
  • Authenticated MJPEG streaming for KDE X11 capture through the browser viewer.
  • GStreamer pipeline planning for the selected resolution and codec.

Automatic virtual display creation is guided unless XRandR exposes a renderable virtual output. XRandR monitor objects without a backing output are not enough for this app because X11 may expose a black framebuffer region instead of pixels from moved windows.

Development

Install the JavaScript and Rust toolchains before starting Tauri. The Tauri CLI shells out to cargo, so make sure Cargo is available in the same terminal where you run pnpm dev:

command -v cargo

If pnpm dev fails with failed to run 'cargo metadata' ... No such file or directory (os error 2), Cargo is installed but not on your shell PATH. Load Rust's environment file:

source "$HOME/.cargo/env"

For zsh, make that permanent by adding this line to ~/.zshrc:

. "$HOME/.cargo/env"

You can append it from the terminal with:

printf '\n. "$HOME/.cargo/env"\n' >> ~/.zshrc
source ~/.zshrc
pnpm install
pnpm dev

Checks

pnpm lint
pnpm test
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo test --manifest-path src-tauri/Cargo.toml
cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
pre-commit run --all-files

Build

pnpm tauri build

The configured Linux bundles are deb and rpm. On Arch-family systems, the release binary is available at src-tauri/target/release/virtual-screen after building.

About

A Tauri desktop app for using any browser as a KDE Linux second-screen client

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors