| assets/fonts | ||
| config | ||
| docs | ||
| src | ||
| main.py | ||
Telefact — Python Edition
Telefact is a modern re-creation of a Ceefax-style Teletext broadcasting system, written in Python using the Tkinter library. It emulates the visual and structural behaviour of broadcast Teletext systems, maintaining a strict 40×24 character grid layout. This version focuses on the "Broadcaster" mode, replicating the look and timing of early digital information services such as BBC Ceefax and Channel 4 Oracle.
VERSION INFORMATION
Version: v0.1.2 Language: Python 3.13 Interface: Tkinter (standard library) Target: Desktop application (Linux / Windows) Resolution: 40×24 Teletext grid Font: Modeseven (Teletext recreation)
PROJECT GOALS
- Faithfully reproduce the look and feel of classic Teletext pages.
- Maintain accurate grid alignment for all text and graphics.
- Provide a configurable header, footer, and body layout.
- Simulate real broadcast elements such as page numbers and timestamps.
- Establish the foundation for future expansion into dynamic page rotation and live content updates.
CURRENT FEATURES
- 40×24 Teletext grid rendering via TelefactRenderer.
- Safe-area margins to simulate CRT overscan.
- Dynamic Ceefax-style header displaying:
- Selected page number (e.g., P100)
- Service provider name block (e.g., Telefact)
- Current page number (e.g., 100)
- Real-time clock (updates every second)
- Configurable colours and font settings via config.json.
- Keyboard shortcuts:
- Q or ESC to exit the application.
SOURCE STRUCTURE
telefact/ ├── src/ │ ├── core/ │ │ ├── telefact_frame.py │ │ ├── telefact_header.py │ │ └── telefact_formatter.py │ ├── telefact_renderer.py │ └── config_manager.py ├── docs/ │ ├── README.md │ └── CHANGELOG.md ├── assets/ │ └── fonts/ │ ├── Modeseven.ttf │ ├── EuropeanTeletext.ttf │ └── EuropeanTeletextNuevo.ttf └── main.py
CONFIGURATION OVERVIEW
The configuration file is located at: config/config.json
Example: { "Mode": "Broadcaster", "ScreenWidth": 800, "ScreenHeight": 600, "Font": { "Name": "Modeseven", "Path": "assets/fonts/Modeseven.ttf", "Size": 18 }, "ShowGrid": false, "Colours": { "Header": "blue", "Footer": "red", "Background": "black", "TextPrimary": "white", "TextAccent": "yellow", "Clock": "yellow" }, "Header": { "ServiceName": "Telefact", "ServiceFG": "yellow", "ServiceBG": "blue", "SelectedPage": "P100", "CurrentPage": "100" } }
ROADMAP
v0.1.3 — Footer System and Subpage Counter
- Implement footer band with coloured background and subpage indicator.
- Integrate page tuning animation (Ceefax-style).
- Add configuration options for rotation speed and page timing.
v0.2.0 — Page System Expansion
- Introduce multiple page definitions with rotation logic.
- Implement Teletext page index and feed loading.
- Begin adding dynamic content from local cache and static feeds.
v0.3.0 — Broadcaster Automation
- Simulate channel loop broadcasting through scheduled pages.
- Add simple playback manager for testing page timing.
AUTHOR AND COPYRIGHT
Developed by Stu Leak
Leak Technologies (2025)
All rights reserved.
Fonts: Modeseven and European Teletext by their respective creators.