unknown 5 månader sedan
incheckning
53be829c31
1 ändrade filer med 181 tillägg och 0 borttagningar
  1. 181 0
      README.md

+ 181 - 0
README.md

@@ -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.