The Wifi Display Specification (WDS) also known as Miracast is an open standard to allow computers and devices to connect wirelessly to displays, and use them as monitors. I am not an expert on it, but as far as I understand it internally uses H264 or some lossy codec to stream video data from a screen buffer to the destination screen via the device’s Wifi chip. Many devices already support this, including all Windows 8 and later devices, as well as Android devices. All smart TV’s I have used in recent years also support it. It’s not a replacement for a cable, but a great and convenient feature in general.
Currently, setting up Miracast on Linux is an awkward affair. KDE does not have built in support for this currently. From what I can tell online, there’s currently MiracleCast which is a standalone tool, but it is not very user friendly or intuitive and requires setting things up on the command line. I believe GNOME is working on a solution but from what I can tell it’s still experimental.
Ideally we should be able to press a keyboard shortcut, and a popup would appear, and it would search for nearby screens. The user would then select a screen and it would connect. If the connection is established, then the screen would be treated like any other display connected to the computer. The desktop can be mirrored, or extended to the screen. After a display is connected, there should be some easy controls over bitrate and latency, so the user can adjust depending on their application (e.g. presentations require good quality but can tolerate high latency, gaming requires low latency but can tolerate low quality). There should also be some HiDPI controls
I think this feature is a great candidate for Plasma 6, since it would probably be a lot easier to integrate with plasma using Wayland, but I’m not an expert.
I think it doesn’t support actually streaming content to devices at the moment - there’s been an issue related to this for several years that’s also listed in the README. Its networking is also a bit of a hassle to set up.
I think aethercast (which the Ubuntu Phone uses) might be more promising.
In the meantime GNOME Network Displays works OK, and in spite of the name doesn’t require much of GNOME, the only inconvenience is getting it working with your firewall.
Maybe I am not reading this correctly but it looks like the NetworkManager conflict is when using the device as a sink, which is typically not going to be the use for us. I would think the typical use would be to cast a KDE desktop to a remote display that would already have its own handling of Miracast and the KDE desktop would be the source.
That’s a shame has there been any change in the viability of using something like MiracleCast (or like aethercast) for this? Or even just anything WiFi Direct related
I wonder if the Steamdeck has anything added to its KDE implementation that allows it to do anything differently for this (just one of the usecases that I had in mind for Miracast)
Any update on this? @ngraham, if not already, I think this should be added to KDE usability & productivity initiative priorities. It is increasingly important in educational and academic environment (where KDE software traditionally has strong user base), as well as in corporate environments; basically whenever one gives a presentation.
It sounds like a good target, then for development that could be sponsored by a company or academic organization that wants to improve FOSS desktop usefulness in those settings
Yeah, very demanded technology! Any phone has it, as well as win and mac. Strange it is missed in KDE! Gnome has it, however it is not production ready for now.
Hi, gnome network display works fine for me, I am on arch Linux with kde, a Lenovo laptop with an i7 11gen and I was able to project my display on my LG tv cs/C2. I had to fiddle a bit for it to be able to find my tv. Luckily AI gives good suggestions.
GNOME Network Displays is also what I’m using. It mostly works fine, but I have some issues with it (and workarounds):
It does actually have firewalld integration, but it’s somewhat broken. When you first try to connect to a display, the firewall is being configured for the new network interface but the program fails to wait for that and just skips to an error screen. When you let the firewall configure, then go back to the main screen and just connect again, the interface is luckily reused and the connection will succeed. Annoying, but works…
It doesn’t support different aspect ratio displays. If your TV is 16:9 and your laptop is 16:10 (the case for me), the display on the TV will look stretched. I am setting my laptop display to 16:9 to avoid this. Also annoying, but works…
The delay is atrocious. But that seems to be a MiraCast issue outright. For me, it’s about 1 second. But I have seen people using Mac which sometimes get more than 2 seconds, and on Windows, it’s also about 1 second. Trying to control your mouse whilst looking at the TV is impossible.
Does gnome network displays work in KDE Plasma? Or do I need to use gnome?
This is pretty typical of miracast as you said. Though on Windows if I remember correctly, you can control the latency to suit your needs. Low latency will mean less smooth streaming however, while high latency results in smoother streaming. Would be cool if this sort of feature can be added to whatever is implemented on Linux as well.
For me, miracast is useful mainly for presentations (or any screen mirroring in general), and watching videos. Anything else and I’ll require an HDMI cable.
Chromium has bult-in casting functionality, so you can launch Chromium, cast screen and then switch to whatever app you want to use. A workaround, but it works.