Imira

Rating: 
3.666665
Your rating: None Average: 3.7 (3 votes)

Imira mirrors the phone screen and audio to a Miracast sink - a TV or an HDMI dongle - over Wi-Fi Direct. No app on the TV, no cables, no network: the phone talks to the sink directly. As far as I know this is the first working Wi-Fi Display source for Sailfish OS. It's still very experimental.

FOR SMOOTH CASTING: MIND YOUR WI-FI
The phone has one radio. If it is connected to your Wi-Fi network on a different channel than the cast, it has to hop back and forth - heard as dropouts, seen as a stuttering or black picture.
- Best: no Wi-Fi connection while casting (Wi-Fi on, but not connected). The cast has the radio to itself.
- Fine: a 2.4 GHz network (this is what i'm using).
- Avoid: 5 GHz networks while casting, or disconnect.

WHAT IS STABLE, WHAT IS NOT
- Mirroring your screen and audio to a TV/dongle works on the tested hardware.
- The convergence direction (the TV as a separate desktop with its own apps) is early and experimental.
- Tested on the Xperia 10 III (Sailfish OS 5.0.0.62) and the Jolla Phone 2026 (Sailfish OS 5.2.0.17), against a Microsoft Wireless Display Adapter V2 and an LG webOS TV. Other phones and receivers (projectors, Samsung TVs, ...) are new territory.
- Your receiver does not work? About -> Diagnostics: switch on the detailed log, try a cast, create a report. It is anonymized, saved in Documents and can be copied straight into the forum or an issue.
- Known rough edge: playing a video in the Gallery WHILE casting can crash the Gallery's playback (hardware encoder and decoder share the video core).

PLEASE READ - WHAT THE PACKAGE INSTALLS SYSTEM-WIDE
Miracast on Sailfish is not possible with the stock system, so this package is invasive by necessity:
- a root systemd service (imira.service) for Wi-Fi Direct, the WFD/RTSP handshake, screen capture and H.264/RTP streaming. It is NOT started at boot: the app starts it when opened (a polkit rule allows exactly this one unit), and it stops by itself when the app is closed;
- a bundled, P2P-capable wpa_supplicant under /usr/libexec/imira/ (the stock one has Wi-Fi Direct compiled out) - used only while scanning or casting;
- a PulseAudio policy file so the daemon can capture the audio without touching the microphone;
- the app runs without the Sailfish sandbox, because it exchanges control/status files with the service.
Nothing leaves your network - the phone streams directly to the receiver. Removing the app removes all of it.

STATUS AND RESPONSIBLE USE
Work in progress, shared as is, no warranty (GPLv3). This touches Wi-Fi and system audio deeply and runs a root service; install it because you want to experiment with Miracast on Sailfish, not because you need a polished tool. Feedback with your phone and receiver model is welcome - ideally with a diagnostics report.

ARCHITECTURES
aarch64 (Sailfish OS 5.0+). No armv7hl build.

Written with Claude Code (Anthropic).

Source, issues, releases: https://github.com/JimKnopfIoT/harbour-imira

Screenshots: 
Application versions: 
AttachmentSizeDate
File harbour-imira-0.10.9-1.aarch64.rpm1.42 MB29/09/2026 - 22:58
Changelog: 

- Imira now listens for the receiver before the phone takes its address in
the Wi-Fi Direct group. Some receivers (a hichip projector) try to
connect once, right after handing out the address; if nothing listened
at that moment they never came back, and most casts ended without a
picture.
- A receiver that names an address outside its own network as its DHCP
server no longer confuses the connection check; the first address of
the network is used instead.
- The diagnostic report fits into a forum post: the most useful parts come
first, long logs are shortened to stay below the forum's size limit, and
hidden values show as [ip] instead of <ip>, which the forum swallowed.

Comments

PatsJolla1's picture

Hi on Jolla C2 I always get an error when I search for a device. When starting from console I see the following errors: JollaC2 ~]$ harbour-imira
[D] unknown:0 - Using Wayland-EGL
library "libutils.so" not found
library "libdmabufheap.so" not found
library "libbase.so" not found
library "libz.so" not found
library "libcutils.so" not found
library "android.hardware.graphics.mapper@4.0.so" not found
library "libgralloctypes.so" not found
library "libhidlbase.so" not found
library "libhardware.so" not found
library "libc++.so" not found
library "libion.so" not found
Am I missing libraries? Or is the C2 differently configured to your device?

JimKnopfIoT's picture

@PatsJolla1 The "library not found" lines are harmless libhybris noise from the graphics start, 
not the cause. The C2 is untested — imira currently expects a Wi-Fi Direct interface named p2p0. 
Please open About → Diagnostics, switch on the detailed log, tap search once, create a report and post it  on GitHub. It shows which wireless interfaces and P2P modes your C2 offers.

birdzhang's picture

Hi, is it possible to add android apps to TV apps?

JimKnopfIoT's picture

@birdzhang  I can't answer that — my focus is on native apps for Sailfish OS.