|
|
@@ -0,0 +1,181 @@
|
|
|
+# 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:
|
|
|
+ ```bash
|
|
|
+ chmod +x setup.sh run.sh
|
|
|
+ ```
|
|
|
+
|
|
|
+2. Run the setup script:
|
|
|
+ ```bash
|
|
|
+ ./setup.sh
|
|
|
+ ```
|
|
|
+
|
|
|
+3. Start the application:
|
|
|
+ ```bash
|
|
|
+ ./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.
|