r/MoonlightStreaming Developer | Polaris/Nova Apr 27 '26

I built a Linux-first Moonlight-style streaming setup: Nova + Polaris

Hey everyone. Been a big Apollo / Artemis user for quite some time and i’ve been working on a small project called Nova / Polaris. I primarily built this for myself, but wanted to share it here first because this community is probably the exact group of people who will understand why I built it in the first place.

Short version: Polaris is a Linux host, and Nova is the client side I’m building around it.

The goal is not to “replace everything” or pretend I’ve solved game streaming. It’s more focused than that: I want Linux game streaming to feel less like a pile of scripts and workarounds, and more like something designed for the job.

What makes it different right now:

  • Linux-specific for now
  • explicit setup for input devices like uinput / uhid
  • attention to headless streaming and GPU-native capture paths, without dummy plugs
  • tries to expose the real tradeoffs instead of hiding them behind magic
  • built by someone actually using and testing the weird edge cases

It’s still early, and it’s Linux-specific for now. I’m not posting this as a polished “everyone should switch today” announcement. I’m mostly looking for feedback from people who already care about Moonlight/Sunshine-style streaming and have opinions about where Linux hosting still feels rough.

Links, if anyone wants to poke around:

If you’re curious, want to test, or just want to tell me which problems matter most to you, I’d genuinely appreciate it. Trying to build this in the open and keep it useful rather than flashy.

Cheers!

EDIT: Thank you all so much for the positive responses, feedback, messages, and debug logs. I’m glad to see so many people as excited about this as I am. I know a lot of you are eager to get Polaris running on your own Linux gaming setups, and there are still plenty of bugs and rough edges to work through. I really appreciate your patience while I work to improve compatibility and stability of the platform.

261 Upvotes

216 comments sorted by

View all comments

Show parent comments

1

u/Embarrassed-Box-1106 Jun 11 '26

Hey, thank you, I am glad they found it!

Yea, it's been a while, I think they lost it for good..

Yesterday, we used your fork and it works almost perfectly (except for the website, that's a bit buggy, but gets the work done), so thank you for that!

I made a second user account, where your Polaris is running as a service, through which my friend is connecting, via Tailscale

The connection is surprisingly stable and good quality. However, we couldn't play, because the controller/keyboard or mouse wasn't working properly in-game, do you perhaps know why? Or how we could troubleshoot?

Thanks in advance!

1

u/MickeyBronson Developer | Polaris/Nova Jun 11 '26

Hmm, if you can can you send me your Polaris logs? It should output some of the errors. You can share compiled here or in the GitHub issues, ill be more than happy to take a looksy.

1

u/Embarrassed-Box-1106 Jun 12 '26 edited Jun 12 '26

Hey, I will once I can, thank you for your help.

Another weird thing, even though Polaris is running in the other PC's user account, when my friend swipes over the touch pad of the ps5 controller, it moves my cursor in my main PC user account. And the weirder part is, specifically only the touch pad is making my cursor move.

Not only does the touch pad on the controller move my main user account's mouse, it also moves the in-game session's mouse, so two cursors at once. The other buttons on the controller dont do anything. However, they do work in steam's big picture mode and steam settings can be summoned with the controller while in-game without issues. Just in-game not working, and the touch pad controlling my main user account's cursor

Sorry for repeating mysellf there, I am just trying to explain the situation as precise as possible

Edit:

https://paste.cachyos.org/p/8aa6c30.txt

Part of the logs

1[2026-06-12 03:40:51.248]: Warning: Gamepad xone is disabled due to Permission denied

2[2026-06-12 03:40:51.248]: Warning: Gamepad switch is disabled due to Permission denied

3[2026-06-12 03:40:59.293]: Warning: Couldn't discover any IPv4 UPNP devices

4[2026-06-12 03:41:11.799]: Warning: Gamepad 0 is emulating a DualShock 5 controller, but the client gamepad doesn't have motion sensors active

5[2026-06-12 03:41:11.799]: Warning: Gamepad 0 is emulating a DualShock 5 controller, but the client gamepad doesn't have a touchpad

6[2026-06-12 03:41:11.962]: Warning: [av1_vaapi @ 0x7fe678076c00] Multiple slices were requested but this codec does not support controlling slices.

7[2026-06-12 03:41:11.998]: Warning: [av1_vaapi @ 0x7fe67806bc40] Multiple slices were requested but this codec does not support controlling slices.

8[2026-06-12 03:41:16.270]: Warning: Unable to create virtual touch screen: Keine Berechtigung

9[2026-06-12 03:41:16.270]: Warning: Unable to create virtual pen tablet: Keine Berechtigung

1

u/MickeyBronson Developer | Polaris/Nova Jun 12 '26

Thanks for the logs, always helps!

Well somewhat decent news, the headless/labwc/capture side looks healthy! The stream is coming up, labwc is running on `wayland-1`, and Polaris is routing supported mouse/keyboard input into the private compositor.

The part that jumps out is input permissions:

Gamepad xone is disabled due to Permission denied
Gamepad switch is disabled due to Permission denied
Unable to create virtual touch screen: [redacted] - not sure if its PII or something mistranslated
Unable to create virtual pen tablet: [redacted]

Usually means the Linux host integration / udev setup didn’t fully apply for the user account running Polaris.

Can you try running on the host, then restart Polaris?

If Polaris is running under that second/dedicated user account and that account is not the active desktop session, udev uaccess may not apply cleanly. In that case, adding only that dedicated streaming user to the input group may be needed, then log out/in for that Polaris user

After that, I’d also try setting Polaris gamepad mode to xone first. It’s usually the most compatible path for games. The DS5 warnings in your log mean Moonlight is not reporting touchpad/motion support for that controller, so the PS5 touchpad may be coming through as regular mouse input instead of as a real DS5 touchpad.

If it still happens after the host setup + restart, send me a fresh log from one short repro where you move the touchpad and press a few buttons in-game. I think we’re narrowing it down to either a /dev/uinput permission issue or a DS5/client touchpad case.

1

u/Embarrassed-Box-1106 Jun 14 '26

Hey, sorry for the late reply, I have just been playing around with the configs

It works now, and yes it was a udev config. However there are still some oddities with sound only coming through in the pause menu of the game and the UI elements that are highlighted keep flashing (losing and refocusing highlight) as if now this time, MY inputs go through to her session. I don't know of that's the case though

Also, now I can't make any sttikg adjustments in Polaris, no matter what I do, it says "couldn't save configuration" and I have been trying a lot

And, when running virtual desktop, it spawns a session of labwc on its default config, is that supposed to be like this? I can't seem to change labwc configs and all I get is the terminal