Voice dictation fix for Artemis Android — a feature-rich fork of Moonlight.
Stock Moonlight/Artemis drops all text from Android IME commitText() calls. This means voice dictation, swipe typing, and autocomplete through Gboard (or any soft keyboard) silently fail — the text never reaches the Windows host.
This fork adds a custom InputConnection that intercepts those IME events and routes them to the remote host via the existing NvConnection.sendUtf8Text() protocol path.
| Input Method | Stock Artemis | Artemis Voice |
|---|---|---|
| Hardware keyboard | Works | Works |
| Gboard tap typing | Works | Works |
| Gboard voice dictation | Broken | Fixed |
| Gboard swipe typing | Broken | Fixed |
| Autocomplete suggestions | Broken | Fixed |
- APK (Debug) — installs alongside stock Moonlight and Artemis
Only 3 files changed (117 lines added):
StreamInputConnection.java(new) — CustomBaseInputConnectionthat routescommitText()→NvConnection.sendUtf8Text()StreamView.java— OverrideonCreateInputConnection()to returnStreamInputConnectionGame.java— PassNvConnectionreference toStreamView
Application ID changed to com.mncompute.artemis.voice so it installs alongside stock apps.
Internal package names remain com.limelight.* to minimize diff and simplify upstream merges.
# Prerequisites: JDK 17, Android SDK (compileSdk 34), NDK 27
git clone --recurse-submodules https://github.com/AFK-Automations/artemis-voice.git
cd artemis-voice
# Create local.properties with sdk.dir and ndk.dir paths
./gradlew assembleNonRootDebug
# Output: app/build/outputs/apk/nonRoot/debug/app-nonRoot-debug.apk- moonlight-voice — Same voice fix applied to stock Moonlight Android
- Upstream issue: moonlight-stream/moonlight-android#1496
- Upstream PR: moonlight-stream/moonlight-android#1556
- Artemis Android by ClassicOldSong
- Moonlight by Cameron Gutman et al.
- Voice dictation fix by Jon Gutierrez / MN Compute
GPL-3.0-or-later (same as upstream)