Skip to content

educollado/KDETeleprompter

Repository files navigation

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

About

Port of NotchPrompter by Jan Pomykala to KDE Plasma, rewritten from scratch in PyQt6 for Linux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors