MADE FOR YOUR LINUX DESKTOP

Your desktop.
A bigger screen.

Put your screen, films, and music on the TV. A familiar cast menu for Linux, with the controls right where you need them.

CinnamonXfceCommand line
Screen + sound togetherYour network. Your devices.One menu across protocols

LESS SETUP. MORE WATCHING.

A cast button that
feels at home.

01

Always in your panel

Install once. The Cinnamon applet or Xfce tray starts immediately and stays available at future logins. Open the cast menu with Super + K.

02

Your screen or your file

Mirror a monitor with desktop audio, choose a media file, or use Nemo’s “Cast to device” action. The same session appears in your panel and CLI.

03

Choose the tradeoff

Adjust output resolution, target frame rate, and the HLS playback buffer. Balance picture quality, encoding load, and delay for your setup.

KNOW BEFORE YOU CAST

Different TVs.
One place to start.

This is a young project, tested on real devices. Protocol support varies—here’s what works and what’s still taking shape.

Available01

Chromecast

Screen mirroring, local files, and media URLs. Automatically transcodes local formats the receiver can’t decode.

HLS mirroring · about 10 s delay by default
Available02

DLNA

Screen mirroring and media playback for compatible smart TVs. Tested with a Samsung TV; files are served in their original format.

MPEG-TS mirroring · receiver controls buffering
Experimental03

AirPlay

Native desktop mirroring with audio has been confirmed on a Samsung TV from Debian 13. Other receivers and longer sessions still need testing.

Optional install · ./install.sh airplay
External app04

Miracast

Launch GNOME Network Displays from the menu. Choose and control your receiver there. Native Miracast support is not implemented yet.

Requires GNOME Network Displays + Wi-Fi Direct

MAKE IT FIT

Sharper picture.
Or a quicker response.

Mirroring settings are saved in the desktop interface and apply to the next cast. Start with the defaults, then adjust to suit your connection.

Lower buffers can stutter on unreliable Wi-Fi. The buffer setting applies to HLS playback; DLNA buffering is controlled by the TV.

MIRRORING DEFAULTS↗
Output resolution480p to 2160p1080p
Target frame rate15 / 24 / 30 / 60 fps presets30 fps
HLS playback buffer2–20 seconds8 sec

FROM TERMINAL TO TELEVISION

Ready when
you are.

Run the installer as your normal desktop user. On Debian and Ubuntu-based systems, it installs missing dependencies and enables your desktop integration.

Open source under the MIT license. Keep the checkout in place after installation.

INSTALL / LINUX
git clone https://github.com/anolis/streaming-service.git
cd streaming-service
./install.sh all

# Then find a device and start casting

~/.local/bin/linuxcast devices
~/.local/bin/linuxcast mirror

# Or open Cast from your desktop panel.

A FEW PRACTICAL DETAILS

Before you press play.

Which Linux desktops are supported?

Cinnamon has a native panel applet. Xfce has a tray icon and flyout. The command line also works independently. The current screen capture path requires an X11 session.

Is this suitable for gaming?

Chromecast mirroring uses HLS and deliberately keeps a playback cushion. Its default delay is around 10 seconds, so it suits watching and presenting better than interactive gaming. Native AirPlay uses a separate mirroring transport, but measured latency is not yet available.

Why isn’t my TV appearing?

Make sure the computer and receiver are on the same reachable local network, enable casting on the TV, and refresh the device list. Network isolation can block discovery. HTTP-based casting also needs the TV to reach a randomly selected port on your computer.

Does every AirPlay TV support video URLs?

No. Pairing and URL-video support are separate capabilities. The tested Samsung rejects URL playback, so native screen mirroring uses a separate backend.

Where can I report a problem?

Use the repository’s issue tracker. Include your Linux distribution, desktop, receiver model, protocol, and the error message. Avoid posting pairing credentials or private media.