About this project
TV Launcher is a full-screen, console-style application launcher for Windows and Linux, written in Python with PyQt6. It presents installed programs in a carousel interface intended for leanback use on a TV or desktop screen, with automatic scaling from 720p up to 4K and beyond.
Input and navigation
It supports Xbox/PlayStation-style gamepads, keyboards, Bluetooth TV remotes, mouse and touch. Gamepads are auto-detected periodically with on-screen notifications. Every key or remote button can be remapped through a Key Remapper panel in Settings, and mappings can be backed up, restored or reset to defaults.
Library management
A program scanner detects installed applications and extracts their icons, caching results for faster later loads. Apps can also be added manually by browsing to an executable. Entries can be edited, deleted, searched with a quick-search widget, and reordered through a drag-and-drop reorder mode that shows position indicators. A category system (Games, Media, Programs, Other by default) allows filtering and quick assignment; categories can be added, edited or deleted with custom icons and colors, and a default category can be chosen for launch.
Artwork and appearance
Cover art is fetched automatically from SteamGridDB using a user-supplied free API key, with a manual download option for existing entries and support for local custom images. Backgrounds can be set manually, rotated automatically from a wallpaper folder, or replaced by streaming video wallpapers in the style of Projectivy Overflight: videos are streamed from a JSON catalogue (default or custom URL) rather than downloaded, with configurable quality (1080p, 1080p HDR, 4K, 4K HDR, adaptive), rotation interval, mute toggle and category filters. The carousel can be shifted vertically to leave space for the video, and the bottom system button bar auto-hides until navigated to. Video playback relies on libmpv, bundled on Windows and installed at system level on Linux.
System features
Settings include visual toggles, configuration backup/restore, soft reset (keeping apps) versus full reset, an update checker that notifies about new releases, a category manager, a weather widget configured by city, and system actions for restart, sleep, shutdown or closing the launcher. A parental control system locks the launcher behind a PIN code.
Installation and configuration
Windows and Linux are handled by separate branches/scripts. Setup can be done manually with a virtual environment and requirements.txt, or via installer.bat / installer.sh, which create the environment, install dependencies and provide one-click launch scripts. Portable builds are offered for both platforms; the Windows build is a self-contained folder, while the Linux portable archive bundles a Python runtime, packages and Qt6 with XCB/Wayland support. Configuration files (launcher_apps.json, key_mappings.json, scanner_cache.json) and tile images live in %APPDATA%\Roaming\TVLauncher on Windows and ~/.config/TVLauncher on Linux, so user data survives updates. Autostart instructions are given for Windows (Startup folder or registry) and Linux (~/.config/autostart desktop entry).
Dependencies include PyQt6, psutil, pygame, requests, python-mpv, and on Windows pycaw and pywin32. The project is MIT licensed, with troubleshooting notes for gamepad permissions, missing libmpv, Qt platform/multimedia packages, image downloads, app launching and scanner caching.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.