Early Access: Client Implementation Status (Windows / Linux)

This page provides an overview of the feature implementation status for the Windows / Linux version of Noctiluca Navigator Early Access (0.9.0 ~ >1.0.0).

Notice

  • This software (Noctiluca Navigator for Windows / Linux) does not include built-in H.264 / HEVC decoder modules (codecs).

    This software uses the system's hardware-accelerated video decoder APIs to decode screen data. Therefore, if your system lacks a hardware-accelerated decoder or does not have a compatible codec installed, screen projection may not function properly.

    • Windows: Decodes screen data via DXVA. Depending on your system configuration, you may need to purchase HEVC Video Extensions separately for HEVC decoding.
    • Linux: Decodes screen data via VA-API. A compatible GPU and driver are required.

    On systems that do not meet the above requirements, you can download the OpenH264 codec provided by Cisco as a limited fallback for H.264 decoding.

For Users Who Prefer Free Software

  • The current version of Noctiluca Server / Noctiluca Navigator uses the non-free codecs H.264 / HEVC for screen projection.

    For users who cannot or choose not to use H.264 / HEVC, we plan to offer additional options using free codecs such as VP8.

  • We respect your rights: Noctiluca Navigator for Windows / Linux permits Qt library replacement and limited reverse engineering.

    This software is built using the Qt framework, which is licensed under the LGPL. In accordance with the LGPL license, users may freely replace the Qt libraries in the Windows / Linux version of Noctiluca Navigator.

    Additionally, reverse engineering is permitted for the purpose of diagnosing issues when a user-provided Qt library replacement does not work correctly. (e.g., using a Qt library with debug symbols to analyze which part of the Qt library causes Noctiluca Navigator to crash)

    For more details, please refer to the Noctiluca Navigator License Agreement for Windows / Linux.


Implementation Status

UI/UX

FeatureStatusNotes
Overall UIIn ProgressI don't like it. I'd prefer something closer to KDE-style UI, but I can't just link and use KF6 directly, and since it's not even a KDE app, I'm not sure if I'm allowed to just follow KDE style like that.
But hey, I'll get criticized either way — I just want to go ahead and follow KDE style on my own.
Main Window (Address Bar / Connecting / Session View)Resolved
Settings WindowResolvedOrganized into 6 tabs: General, Input, Security, Projection, Miscellaneous, and Plugins.
Per-Session Settings DialogResolvedOrganized into 4 tabs: Projection, Input, Security, and Credentials.
Address Bar (Autocomplete, Quality/Security Indicators)Resolved
Contact ListIn ProgressImplementation is complete, but there are compatibility issues with Qt versions below 6.5.
Activity BarResolved
About DialogResolved
Performance OverlayKnown

Authentication

FeatureStatusNotes
UNIX PAM AuthenticationResolvedSupports username-password authentication based on UNIX PAM.
Simple Password AuthenticationResolvedSupports password-only authentication.
SSH Key AuthenticationResolvedSupports authentication using SSH private keys.
Auth Challenge DialogIn ProgressI don't like it.

Projection: Video Decoding

FeatureStatusNotes
DXVA-based H.264 / HEVC DecoderResolvedWindows only. Uses D3D11 Video Decoder API.
VA-API-based H.264 / HEVC DecoderResolvedLinux only. Attempts DMABUF zero-copy when possible.
Cisco OpenH264 Software DecoderResolvedDynamically loaded via dlsym(3). This decoder module is not bundled with Noctiluca Navigator; the user must agree to the license before installation.
OpenH264 Download DialogResolvedDownloads the binary after license agreement and verifies checksum.
MJPEG DecoderResolvedBased on libturbojpeg with parallel tile decoding support.
ZRLE DecoderResolvedZstd + RLE-based tile decoder.
WebP DecoderPlannedDecoder implementation has not been done yet.
libvpx-based VP8 DecoderPlannedWe plan to offer this as an additional option for users who cannot or choose not to use the non-free codecs H.264 / HEVC.

Projection: Audio Decoding & Playback

FeatureStatusNotes
Opus DecoderResolvedBased on libopus, supports 48kHz stereo output.
G.711 mu-law / A-law DecoderResolvedLUT-based conversion with resampling support.
PortAudio-based Audio PlaybackResolvedUses WASAPI on Windows and system default audio API on Linux.
Audio Jitter BufferResolved

Projection: Rendering

FeatureStatusNotes
QRhi Renderer (Vulkan / D3D11 / OpenGL)ResolvedDefault renderer on Windows. Supports HDR tone mapping (Vulkan) and CAS (Contrast Adaptive Sharpening).
Implementation is complete, but intentionally disabled on Linux due to ABI compatibility issues.
QOpenGL RendererResolvedDefault renderer on Linux. Supports CAS (Contrast Adaptive Sharpening).
QPainter Software RendererResolvedCPU software renderer for environments without GPU acceleration. SDR only; colors may be inaccurate if the host uses a wide color gamut such as Display P3.
Cursor OverlayResolvedCursor overlay rendering is supported in all three renderers.
Video Jitter BufferResolvedProvides Stability / Low Latency / Ultra Low Latency presets.

Projection: Multi-Display

FeatureStatusNotes
Multi-Display SwitchingResolvedSwitch between displays via the display list sidebar.
Display Detach (Separate Windows)ResolvedSecondary displays can be detached into independent windows.

Projection: Codec Negotiation

FeatureStatusNotes
Video Codec NegotiationResolved
Audio Codec NegotiationResolved
Codec Settings DialogIn ProgressI don't like it.

HIDIO

FeatureStatusNotes
Basic Keyboard / Mouse Input (Shared Mode)ResolvedSupports keyboard/mouse input based on Qt widget events.
Exclusive Input Mode (Windows)In ProgressImplementation is complete, but needs further verification.
Exclusive Input Mode (Linux)In ProgressImplementation is complete, but needs further verification.
Exclusive Mode Escape HotkeyResolvedYou should be able to enter exclusive mode by pressing a predefined hotkey.
Key RebindingResolvedSupports key rebinding through the key event pipeline.
Modifier Key RebindingResolvedSupports settings-based rebinding of modifier keys (Ctrl, Alt, Super, etc.).
Mouse Acceleration (Linux)ResolvedIn exclusive mode, raw mouse events come in as-is, so mouse acceleration must be implemented manually.

Clipboard Sync

FeatureStatusNotes
Clipboard SyncIn ProgressThe Sirius clipboard channel class is implemented, but the connection to the session is not yet complete.

libsirius

FeatureStatusNotes
transport: MsQuic-based Transport Layer ImplementationResolved
transport/msquic: Connection Migration within Same Address FamilyKnownNeeds to detect IP address changes on network interfaces.
transport/msquic: Connection Migration between IPv4 / IPv6 FamiliesKnown
transport/msquic: Server Identity Verification (Linux, QuicTLS)In ProgressNeeds further verification.
transport/msquic: Server Identity Verification (Windows, Schannel)In ProgressNeeds further verification.

libsirius/msgdef

FeatureStatusNotes
.mdproto Spec FinalizationIn ProgressNeed to finalize the spec for .mdproto, which serves as both a human-readable spec document for the Sirius protocol and is itself compilable to Protobuf.
Just need to define the // @annotation(attr) spec for more generic use cases.
Documentation Cleanup / TranslationPlannedNeed to clean up the messy docs so they can be published externally.

Security

FeatureStatusNotes
persistent/secret: Secret Store (Windows)ResolvedSensitive information used within the app should be securely stored via Windows Credential Manager.
persistent/secret: Secret Store (Linux)ResolvedSensitive information used within the app should be securely stored via libsecret.
Known Hosts SystemResolvedStores server certificate fingerprints and prevents MITM attacks on reconnection.
Server Certificate Validation DialogIn ProgressDisplays a 3-tab dialog (warning / certificate info / help) when TLS certificate validation fails.
The feature itself works, but there are confirmed errors in the information display.

Miscellaneous

FeatureStatusNotes
Sleep InhibitorResolvedPrevents the system from entering sleep mode during a remote session.

Known Bugs

SecurityKnown0.8.9

Fails to start on a default Ubuntu Desktop installation

On Linux, Noctiluca Navigator stores secret data via libsecret → GNOME Keyring in most environments.

On a default Ubuntu Desktop installation, GNOME Keyring is bundled but no default keyring has been created, which causes Noctiluca Navigator to be unable to store secret data.

We are considering falling back to a file-based secret store in this case, but we're also reluctant since a file-based secret store is inherently insecure.

To resolve this issue, please manually create a default keyring as described on the Noctiluca Navigator Help / Troubleshooting (Linux) page.

UIPlanned0.8.9

Contact list appears empty when running on Qt below 6.5

The contact screen uses the RectangularShadow effect from QtQuick.Effects to apply shadow effects to contact cards.


However, the QtQuick.Effects module itself is not available in Qt versions below 6.5, causing QML loading to fail and the contact screen to appear empty.


Since Ubuntu 24.04 LTS ships with Qt 6.4 by default, this issue is expected to be particularly common on Ubuntu 24.04 LTS.

AuthenticationResolved0.8.9 → Resolved in 0.9.2

SSH key authentication was not yet supported

The SSH key authentication option existed in the UI, but there was no means to actually perform signing with an SSH key when receiving an authentication challenge from the server.


Starting from version 0.9.2, a C++ port of Xuanxue (玄学) was added, enabling SSH key authentication.

HIDIOPlanned0.8.9

Exclusive input mode on Windows has not been sufficiently tested

Due to limited testing equipment and development resources, the exclusive input mode on Windows has not been sufficiently tested. As a result, unexpected input behavior or system interaction issues may occur in this mode.

ProjectionPlanned0.8.9

Colors may be inaccurate when the host uses a wide color gamut such as Display P3

  • The QRhi renderer and OpenGL renderer temporarily map the host's color space to sRGB before rendering. We plan to provide an option to render without mapping, preserving the original color space.
  • The QPainter software renderer renders screen data without any verification or mapping. Colors may be inaccurate.