Nenhuma descrição

unknown d78c38b65f first commit 5 meses atrás
models d78c38b65f first commit 5 meses atrás
ui d78c38b65f first commit 5 meses atrás
.gitignore d78c38b65f first commit 5 meses atrás
QUICKSTART.md d78c38b65f first commit 5 meses atrás
README.md 53be829c31 first commit 5 meses atrás
main.py d78c38b65f first commit 5 meses atrás
requirements.txt d78c38b65f first commit 5 meses atrás
run.bat d78c38b65f first commit 5 meses atrás
run.sh d78c38b65f first commit 5 meses atrás
setup.bat d78c38b65f first commit 5 meses atrás
setup.sh d78c38b65f first commit 5 meses atrás

README.md

Countdown Timer Application

A cross-platform fullscreen countdown timer application built with Python and PyQt6.

Features

  • Multiple Timers: Create, edit, and manage multiple countdown timers
  • All-in-One Interface: View and control all running timers in a single window
  • Fullscreen Display: Show all timers on a separate monitor in fullscreen mode
  • Multi-Monitor Support: Choose which monitor to display timers on
  • Individual Controls: Each timer has pause/resume, stop, and restart buttons
  • Global Controls: Pause, resume, or stop all timers at once
  • Timer Library: Save and reuse your favorite timer configurations
  • Customizable Appearance: Configure font size, background color, and text color for each timer
  • HH:MM:SS Input: Set timer duration using hours, minutes, and seconds
  • Timer Titles: Each timer displays its name above the countdown
  • Persistent Settings: All timers and settings are saved automatically
  • Cross-Platform: Works on both Windows and Linux

Requirements

  • Python 3.8 or higher
  • PyQt6

Installation

Windows

  1. Run the setup script:

    setup.bat
    
  2. Start the application:

    run.bat
    

Linux

  1. Make the scripts executable:

    chmod +x setup.sh run.sh
    
  2. Run the setup script:

    ./setup.sh
    
  3. Start the application:

    ./run.sh
    

Usage

Creating a Timer

  1. Click "Add Timer" in the Timer Library panel
  2. Enter a name for your timer
  3. Set the duration using HH:MM:SS format (hours:minutes:seconds)
  4. Customize the appearance (font size, colors)
  5. Click "Save"

Starting Timers

  1. Select a timer from the Timer Library list
  2. Click "Start Selected Timer"
  3. The timer appears in the Active Timers panel on the right
  4. Start as many timers as you need - they all display in the same window

Individual Timer Controls

Each running timer has its own controls:

  • Pause/Resume: Pause the countdown or resume it
  • Restart: Reset the timer back to its original duration
  • Stop: Stop the timer and remove it from the display

Global Controls

Control all running timers at once:

  • Pause All Timers: Pause all running timers simultaneously
  • Resume All Timers: Resume all paused timers
  • Stop All Timers: Stop and remove all running timers

Fullscreen Display Mode

Show all active timers on a separate monitor:

  1. Start one or more timers
  2. Click "Show Fullscreen on Monitor" in the Display Mode section
  3. All active timers appear in fullscreen on your selected monitor
  4. Timers split the screen evenly:
    • 1 timer = 100% of screen height
    • 2 timers = 50% each
    • 3 timers = 33% each
    • And so on...
  5. Timers sync automatically between main window and fullscreen display
  6. Control timers from the main window (pause, restart, stop)
  7. Press ESC on the fullscreen display to exit fullscreen mode

Configuring Monitor

  1. Click "Settings" in the main window
  2. Select the monitor where you want the fullscreen display
  3. Click "Save"

Editing/Deleting Timers

  • Select a timer from the library and click "Edit Timer" to modify it
  • Select a timer and click "Delete Timer" to remove it from your library

Interface Layout

The application has two main panels:

Left Panel - Timer Library & Controls:

  • List of saved timer configurations
  • Add, Edit, Delete, and Start buttons
  • Global control buttons (Pause All, Resume All, Stop All)
  • Display mode button (Show Fullscreen on Monitor)
  • Settings button

Right Panel - Active Timers:

  • Displays all currently running timers
  • Each timer shows its name, countdown, and individual controls
  • Scrollable area to accommodate multiple timers

Fullscreen Display (Optional):

  • Shows all active timers on a separate monitor
  • Timers split the screen height evenly (2 timers = 50% each, etc.)
  • Font sizes automatically adjust based on number of timers
  • Fullscreen mode for maximum visibility
  • Automatically syncs with main window
  • Press ESC to exit

Tips

  • Duration: Use HH:MM:SS format (e.g., 00:05:00 for 5 minutes)
  • Multiple Timers: Run as many timers as you need - all visible in one window
  • Fullscreen Mode: Perfect for presentations or displaying timers on a TV/projector
  • Even Split: Timers automatically divide the screen height evenly
  • Auto-Scaling: Font sizes adjust automatically based on number of timers
  • Multi-Monitor: Configure which monitor shows the fullscreen display
  • Individual Controls: Each timer has its own Pause, Restart, and Stop buttons
  • Global Controls: Use Pause All/Resume All/Stop All for quick management
  • Pause Anytime: Need a break? Pause individual timers or all at once
  • Colors: Use contrasting colors for better visibility
  • Timer Library: Save frequently used timers for quick access
  • Reusable Configs: Start the same timer multiple times simultaneously
  • Sync Display: Fullscreen display automatically syncs with main window controls

Keyboard Shortcuts

  • ESC (in fullscreen display): Exit fullscreen mode and return to main window

Project Structure

countdown-timer/
├── main.py                 # Application entry point
├── models/
│   ├── __init__.py
│   └── timer_model.py     # Timer data model
├── ui/
│   ├── __init__.py
│   ├── main_window.py     # Main application window
│   ├── settings_dialog.py # Settings dialog
│   ├── timer_dialog.py    # Timer configuration dialog
│   └── timer_window.py    # Fullscreen timer display
├── requirements.txt        # Python dependencies
├── setup.bat              # Windows setup script
├── setup.sh               # Linux setup script
├── run.bat                # Windows run script
├── run.sh                 # Linux run script
└── README.md              # This file

License

This project is open source and available for personal and commercial use.