Skip to content

epicrean/Queue

Repository files navigation

Queue - Premium HTPC Launcher

A Roku-inspired, elegant launcher for Windows streaming apps and HTPC media centers. Queue provides a beautiful, customizable interface to manage and launch your favorite streaming services and applications.

Queue Launcher PyQt6 Platform

Features

🎨 Beautiful Interface

  • Roku-inspired design with sleek, modern aesthetics
  • Customizable backgrounds - choose from included images or use your own
  • Four tile sizes - Small, Medium, Large, Extra Large
  • Auto-scaling - Adapts to any screen resolution (1080p to 4K)
  • Dark theme optimized for viewing at a distance

🚀 Smart App Detection

  • Automatic Windows Store app scanning - Finds your installed streaming apps
  • UWP app support with multi-tier launch fallback
  • Custom app management - Add, edit, or remove apps
  • Auto-detection of popular services:
    • Netflix, Disney+, Hulu, Prime Video
    • Apple TV, Spotify, Twitch, Pandora
    • Pluto TV, Tubi, Kodi, ESPN, and more

🎮 Remote-Friendly Navigation

  • Keyboard/controller support - Navigate with arrow keys or gamepad
  • Auto-hiding cursor - Clean, distraction-free experience
  • Settings tile - Customize your launcher appearance and behavior
  • Exit confirmation - Prevent accidental closures

⚙️ Extensive Customization

  • Custom backgrounds - Gradient or image backgrounds
  • Tile size adjustment - Four sizes with automatic scaling
  • Clock format - 12-hour or 24-hour display
  • App-specific icons - Customize tile images for each app
  • Color themes - Brand-accurate colors for each service

Installation

Requirements

  • Python 3.8 or higher
  • Windows 10/11 (Windows Store app support requires Windows)

Setup

  1. Clone the repository:

    git clone https://github.com/yourusername/Queue.git
    cd Queue
  2. Install dependencies:

    pip install PyQt6
  3. Run the launcher:

    python Queue.py

Project Structure

Queue/
├── Queue.py              # Main entry point
├── main_window.py        # Core UI and window management
├── app_launcher.py       # Application launching logic
├── app_scanner.py        # Windows Store app detection
├── config_manager.py     # Configuration persistence
├── constants.py          # App definitions and styling
├── dialogs.py            # Settings and dialogs
├── widgets.py            # Custom UI components
├── logger.py             # Logging utilities
├── tiles/                # App tile images
├── backgrounds/          # Background images
└── agents/               # AI agent specifications

Usage

First Launch

On first run, Queue will:

  1. Scan for installed Windows Store apps
  2. Create a grid layout with detected apps
  3. Add a Settings tile for customization

Navigation

  • Arrow Keys / D-Pad - Navigate between tiles
  • Enter / Start - Launch selected app
  • Esc / Back - Open exit confirmation

Settings

Press Enter on the Settings tile to access:

  • UI Settings - Background image, tile size, clock format
  • Windows Apps - View, edit, or remove installed apps
  • Add Apps - Scan for and add Windows Store apps

Adding Apps

  1. Navigate to Settings → Add Apps
  2. Choose "Auto Search" to scan all apps
  3. Select apps to add and click "Add Selected Apps"

Custom Backgrounds

  1. Place images in the backgrounds/ folder
  2. Go to Settings → UI Settings → Background
  3. Select your custom image

Supported formats: .jpg, .png, .webp

Customization

Tile Images

For best results, use:

  • Format: PNG with transparency (recommended) or SVG
  • Size: 900 × 504px (2× Extra Large for high-DPI)
  • Aspect Ratio: 16:9

See TILE_IMAGE_GUIDELINES.md for detailed specifications.

Configuration File

Settings are saved in queue_config.json:

{
    "background_image": "backgrounds/Custom.jpg",
    "tile_size": "Medium",
    "clock_format": "12-hour",
    "custom_apps": [
        {
            "name": "Netflix",
            "path": "shell:AppsFolder\\4DF9E0F8.Netflix_mcm4njqhnhss8!Netflix",
            "color": "#e50914",
            "icon_path": "netflix.png"
        }
    ]
}

Supported Apps

Queue automatically detects and supports these streaming services:

  • Netflix
  • Disney+
  • Hulu
  • Amazon Prime Video
  • Apple TV
  • Spotify
  • Twitch
  • Pandora
  • Pluto TV
  • Tubi
  • Kodi
  • ESPN
  • NBC Sports
  • Crunchyroll
  • Amazon Music
  • Classic Movies
  • And many more!

Development

Architecture

Queue uses a modular architecture:

  • Queue.py - Entry point and app initialization
  • main_window.py - UI layout and navigation
  • app_launcher.py - Launch logic for UWP and Win32 apps
  • app_scanner.py - PowerShell-based app detection
  • config_manager.py - JSON configuration handling
  • constants.py - Centralized app definitions and styling

Adding New Services

To add support for a new streaming service:

  1. Edit constants.py:

    TARGET_APPS = {
        "Your Service": {
            "patterns": [r"YourServicePattern"],
            "color": "#YourColor"
        }
    }
  2. Add a tile image to tiles/ folder

Logging

Logs are saved in the logs/ directory with timestamps:

  • Application startup
  • App scanning results
  • Launch attempts
  • Error messages

Roadmap

  • Media file playback support
  • Game ROM launcher
  • Theme marketplace
  • Multi-monitor support
  • Advanced search functionality

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

  • Inspired by Roku's elegant interface
  • Built with PyQt6
  • Designed for HTPC enthusiasts

Support

For issues, questions, or feature requests, please open an issue on GitHub.


Made with ❤️ for HTPC enthusiasts

About

Windows Media Hub

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages