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
Run the setup script:
setup.bat
Start the application:
run.bat
Linux
Make the scripts executable:
chmod +x setup.sh run.sh
Run the setup script:
./setup.sh
Start the application:
./run.sh
Usage
Creating a Timer
- Click "Add Timer" in the Timer Library panel
- Enter a name for your timer
- Set the duration using HH:MM:SS format (hours:minutes:seconds)
- Customize the appearance (font size, colors)
- Click "Save"
Starting Timers
- Select a timer from the Timer Library list
- Click "Start Selected Timer"
- The timer appears in the Active Timers panel on the right
- 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:
- Start one or more timers
- Click "Show Fullscreen on Monitor" in the Display Mode section
- All active timers appear in fullscreen on your selected monitor
- Timers split the screen evenly:
- 1 timer = 100% of screen height
- 2 timers = 50% each
- 3 timers = 33% each
- And so on...
- Timers sync automatically between main window and fullscreen display
- Control timers from the main window (pause, restart, stop)
- Press ESC on the fullscreen display to exit fullscreen mode
Configuring Monitor
- Click "Settings" in the main window
- Select the monitor where you want the fullscreen display
- 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.