A desktop utility application for tracking work hours with reminder functionality.
- Automatic work hour tracking
- Check-in and check-out reminders
- Daily work log reminders
- System tray integration
- Customizable desktop timer display
- Flexible/Fixed time mode support
- Custom timer functionality
- Reminder settings configuration
- Auto-update capability
- Run on startup option
- Python 3.6 or higher
- PyQt5 >= 5.15.0
- Other dependencies listed in requirements.txt
- Clone the repository:
git clone https://github.com/uuvccc/WorkDayTimer.git
cd WorkDayTimer- Install dependencies:
pip install -r requirements.txtYou can run the application in two ways:
python main.pyYou can also run the pre-built executable file directly:
- Download the latest release from the releases page
- Extract the zip file
- Run
MiniTools.exe
After starting the application:
- The timer will appear as a small widget in the top-right corner of your screen
- System tray icon provides quick access to:
- Open the main window
- Toggle flexible mode
- Set custom timer
- Open settings dialog
- Update application
- Toggle run on startup
- Exit the application
- Automatic reminders will notify you for:
- Check-in time
- Work log submission
- Check-out time
- System shutdown (in fixed time mode)
The application uses a configuration file for reminder settings. You can access the settings dialog through the system tray menu to:
- Enable/disable check-in reminder
- Enable/disable work record reminder
- Enable/disable check-out reminder
WorkDayTimer/
├── main.py # Entry point
├── app/
│ ├── __init__.py
│ ├── application.py # Application lifecycle management
│ ├── main_window.py # Main window widget
│ ├── config/
│ │ ├── constants.py # Configuration constants
│ │ └── manager.py # Configuration manager class
│ ├── services/
│ │ ├── time_service.py # Time calculation service
│ │ ├── system_service.py # System operations (startup, shutdown, QQ toggle)
│ │ ├── update_service.py # Application update service
│ │ └── keyboard_service.py# Keyboard hook service
│ ├── ui/
│ │ ├── tray_menu.py # System tray menu
│ │ └── dialogs/
│ │ ├── settings_dialog.py # Settings dialog
│ │ ├── custom_timer_dialog.py # Custom timer dialog
│ │ └── reminder_dialog.py # Reminder dialogs
│ └── utils/
│ ├── logger.py # Logging utility
│ └── version.py # Version comparison utility
├── tests/ # Unit tests
├── images/ # Timer images
├── requirements.txt # Dependencies
├── setup.py # Package setup
└── workday_timer.spec # PyInstaller configuration
To build the executable:
python workday_timer.specOr using PyInstaller directly:
pyinstaller --onefile --windowed --name MiniTools main.pyContributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details