Metadata-Version: 2.1
Name: circadian_desktops
Version: 0.1.0
Summary: An app that changes your desktop background based on time of day.
Project-URL: Homepage, https://github.com/Luke943/CircadianDesktops
Project-URL: Bug Tracker, https://github.com/Luke943/CircadianDesktops/issues
Author-email: Luke Hartley <luke.hartley05@gmail.com>
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Requires-Dist: astral
Requires-Dist: geocoder
Requires-Dist: pyqt5
Description-Content-Type: text/markdown

# ![Logo](logo.png) CIRCADIAN DESKTOPS 

## Description

Circadian Desktops is a Python app for Windows 10 that changes your desktop background based on time of day.

![Screenshot](screenshot.png)

### Desktop Images
Allows users to select different image files to use as desktop background during dawn, day, dust and night.
A single image can be selected for each period or the app can be set to shuffle images from the selected image's folder.

### Transition Times
The app determines image transition times based on sunrise and sunset times at the users location.
This is calculated using two non-standard library Python modules:
- [Geocoder](https://github.com/DenisCarriere/geocoder) - Retrieves the users location and timezone using their IP address.
- [Astral](https://sffjunkie.github.io/astral/) - Calculates sunrise and sunset times based on user location and the current date.

Alternatively, the user can select their own times for images to transition.

### Preferences
The app offers three additional options:
- Dark Theme - Toggles the GUI between light and dark theme.
- Minimize to tray - When selected the app will minimize to the system tray and continue running, instead of shutting down when the window in closed.
- Run on startup - The app to run in the background when the computer is started.

## Installation

To install Circadian Desktops as a library module from PyPI:
```
python -m pip install circadian_desktops
```
Alternatively, copy the contents of the `src/circadian_desktops` directory.

## Usage

It is recommended to run Circadian Desktops with `pythonw.exe` to avoid having a command prompt hanging. With Circadian Desktops installed in Python's library packages, run:
```
pythonw -m circadian_desktops
```

Alternatively, provide a reference to its location (without the `-m` flag):
```
pythonw C:\example\path\to\app\circadian_desktops
```

## App files

The circadian_desktops directory contains:
- `__init__.py` - Empty file to identify module.
- `__main__.py` - Entry point to run module as a script.
- `app.py` - Primary script to run the app. Contains the MainWindow class and script to start app.
- `functions.py` - Helper functions called by app.py. Handles functionality outside the GUI.
- `ui_mainwindow.py` - Python script generated from destopUi.ui by `pyuic5`. Used as GUI layout for MainWindow in app.py.
- `desktopUi.ui` - Widget layout for GUI generated by [Qt Designer](https://doc.qt.io/qt-6/qtdesigner-manual.html). Not required for app to run.
- `custom_qt.py` - Contains a custom QtPalette class used for 'dark theme'.
- `Icons/` - Folder with image files used in GUI and for Windows system icons.
- `clean.py` - Run to remove traces of Circadian Desktop from you PC not contained in `src`, i.e. settings file and registry entry.
