Skip to content

Latest commit

 

History

History
174 lines (127 loc) · 5.68 KB

File metadata and controls

174 lines (127 loc) · 5.68 KB

KDE Teleprompter

Python PyQt6 Platform License

A lightweight, frameless teleprompter for Linux / KDE Plasma, inspired by NotchPrompter. Built with PyQt6 — no Electron, no browser, no bloat.

┌──────────────────────────────────────┐
│                                      │
│      The text scrolls upward         │
│    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    │  ← fade out
│   ████  smoothly, centred,  ████     │  ← full opacity (centre)
│    ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    │  ← fade out
│                                      │
│ [ ⏸ ][ ⏮ ][ ✏ ]  Speed ──●──  Font ──●──  [ ✕ ] ⠿ │  ← control bar (on hover)
└──────────────────────────────────────┘

Features

  • Always-on-top, frameless window — sits above your video software
  • Smooth 60 fps scroll driven by a 16 ms QTimer
  • Voice-activated scrolling — scroll speed follows your speech energy in real time; pauses automatically when you stop talking
  • Quadratic alpha fade — lines near the centre are fully opaque; edges fade out gracefully
  • Hover to pause — moving the pointer over the window pauses scrolling and reveals controls
  • Drag to reposition anywhere on screen; grip to resize
  • Script editor with file-load support (plain .txt)
  • Speed & font-size sliders in the control bar
  • Mouse wheel and keyboard shortcuts for quick adjustments
  • Catppuccin Mocha colour scheme

Requirements

Dependency Version Notes
Python ≥ 3.10
PyQt6 ≥ 6.4.0
pyaudio ≥ 0.2.13 Optional — required for voice-activated scroll
numpy ≥ 1.24.0 Optional — required for voice-activated scroll
libportaudio2 any System library for pyaudio

Installation

Option 1 — .deb package (Debian / Ubuntu)

Download the latest .deb from the Releases page and install it:

sudo apt install ./kdeteleprompter_1.0.2_all.deb

This will automatically install python3-pyqt6, python3-pyaudio, python3-numpy and libportaudio2 if not already present. After installation, the app is available as kdeteleprompter from the terminal and from the KDE application launcher.

Option 2 — run from source

# Clone or download the project
cd kdeteleprompter/

# For voice-activated scroll, install the portaudio system library first:
sudo apt install portaudio19-dev

# Launch (creates a venv and installs dependencies automatically)
./run.sh

Tip (KDE): Right-click the title bar → More Actions → Keep Above Others is not needed — the window sets this flag automatically.


Keyboard shortcuts

Key Action
Space Play / Pause
R Reset to beginning
M Toggle voice-activated scroll
+ / = Increase speed
- Decrease speed
Ctrl+E Open script editor
Escape Close

Mouse controls

Action Effect
Scroll wheel Adjust speed ±1 step
Left-click drag Move window
Drag the grip (bottom-right) Resize window
Hover Pause scroll, show controls
Leave Resume scroll, hide controls

Control bar

Appears automatically when the pointer enters the window.

Control Range Default Description
⏸ / ▶ button Playing Toggle pause
⏮ button Reset scroll to top
✏ button Open script editor
🎤 button Off Toggle voice-activated scroll
Speed slider 1 – 30 5 Scroll speed (× 0.1 px/frame = 0.1 – 3.0 px/frame)
Font slider 10 – 72 pt 28 pt Display font size
✕ button Close the application

Project structure

kdeteleprompter/
├── kdeteleprompter.py   # Single-file application
├── requirements.txt     # pyaudio, numpy
├── run.sh               # launcher (creates venv automatically)
└── build_deb.sh         # .deb packaging script

Class overview

TeleprompterWindow (QMainWindow)
├── ScrollDisplay (QWidget)    — QPainter-based animated canvas
├── ControlBar    (QWidget)    — hover-revealed control strip
├── EditorDialog  (QDialog)    — script editor (modal)
├── MicDialog     (QDialog)    — microphone selection
└── VoiceListener (QThread)    — real-time VAD via pyaudio + numpy

Colour scheme

All colours follow the Catppuccin Mocha palette:

Role Colour
Background rgb(11, 11, 17)
Text #cdd6f4
Accent / UI #cba6f7 (mauve)
Bar background rgba(30, 30, 46, 210)

Attribution

This project is a port of NotchPrompter by Jan Pomykala to KDE Plasma, rewritten from scratch in PyQt6 for Linux.

Original project licensed under MIT.


License

MIT License — see LICENSE for the full text.

Copyright (c) 2024 Jan Pomykala Copyright (c) 2026 Eduardo Collado