A high-performance, system-wide local Text-to-Speech application for Lilith Linux.
- NeuTTS Nano Integration: Real-time high-quality TTS using the NeuTTS Nano model (~120MB GGUF).
- Instant Voice Cloning: Create new voices from 5–15 second clean WAV reference clips.
- Global Hotkey: Press
Ctrl+T+T+Mto read the current screen content or selection from any application. - Intelligent Screen Reader: Uses AT-SPI2 to walk the accessibility tree, automatically skipping UI chrome, navigation bars, and advertisements.
- Web-Optimized: Heuristics to extract the main article content from browsers, ignoring sidebar clutter.
- COSMIC Panel Applet: Sleek and modern GUI integrated directly into the COSMIC Panel, featuring a clean white-flame symbolic icon.
- Anchored Popup Window: The main control panel and engine settings slide out beautifully, anchored directly to the panel applet.
Lilith-TTS is built as a three-crate Rust workspace:
tts-core: Shared library containing the TTS engine abstraction, configuration, audio playback logic, and screen/clipboard readers.tts-daemon: Background service that monitors global hotkeys, manages the TTS engine lifecycle, and provides a Unix socket IPC server.tts-gui: A borderless panel applet that provides a user interface to control the daemon and configure voices.
Lilith-TTS supports standard COSMIC applet installation using just, as well as a one-shot install script.
If you have just installed on your system, you can build and install the applet directly:
-
Build the release binaries:
just
-
Install the applet:
- System-wide (requires sudo, defaults to
prefix=/usr):sudo just install # Or install to /usr/local sudo just install prefix=/usr/local - User-local (no root privileges required, installs to
~/.local):just install-user
- System-wide (requires sudo, defaults to
-
Configure permissions for the global hotkey:
just setup-hotkey
(Note: You must log out and back in for the hotkey input group change to take effect)
-
Download the NeuTTS Nano model:
just download-model
Alternatively, you can run the interactive install.sh script, which automates building, local installation, group configuration, and model downloading in one step:
./install.sh--only-model: Skips build and installation, jumping straight to checking/downloading the NeuTTS model.--non-interactive: Runs the installation in headless mode, downloading the model to your user-local directory without prompts.-h, --help: Displays help message.
Once installed, Lilith TTS will be registered as a COSMIC applet:
- Right-click any COSMIC panel and select Add Applet (or open System Settings → Panels → Add Applet).
- Select Lilith TTS from the list.
- The custom flame silhouette symbolic icon will appear in the panel. Click it to open the control popup.
The high-quality NeuTTS Nano model (neutts-nano-q4.gguf) will search:
- System location:
/var/lib/lilith/models/neutts-nano-q4.gguf - User-local location:
~/.local/share/lilith-tts/models/neutts-nano-q4.gguf
You can download it using the Download NeuTTS Nano button inside the applet's Settings page, or manually point to a pre-downloaded model path from there.
The background daemon handles the global hotkey (Ctrl + T + T + M) and reads text from the active window/clipboard. It runs as a systemd user service:
# Check status
systemctl --user status lilith-tts-daemon
# Restart daemon
systemctl --user restart lilith-tts-daemonBuilt for Lilith Linux — BlancoBAM