## Features and Screenshots
The main purpose of this application is to randomly choose and set a desktop theme based on time.
**N.B.** If you change any configuration, it will be in action only after next reboot.
## Dependencies
### Build Dependencies
The following dependencies are required to build **Theme Manager**.
```$
gettext
desktop-file-utils
libglib2.0-bin
libgtk-4-bin
meson
pybuild-plugin-pyproject
python3
python3-sphinx
python3-sphinx-argparse
```
### Runtime Dependencies
The following dependencies are required to run **Theme Manager**.
```$
gir1.2-appindicator3-0.1
gir1.2-gtk-3.0
python3
python3-configobj
python3-gi
python3-setproctitle
python3-tldextract
redshift
```
To use or test Theme Manager, you need these dependencies to be installed.
### Debian/Ubuntu based distro
To install dependencies on Debian/Ubuntu based systems, run:
```
sudo apt install gir1.2-appindicator3-0.1 python3 python3-configobj python3-gi \
python3-setproctitle python3-tldextract redshift
```
**Note**: If you are using `gdebi` to install **Theme Manager** from a `.deb` file, it will automatically install the dependencies and you can skip this step.
### Other Linux-based distro
Replace `apt install` in the command given in [Debian/Ubuntu based distros](#debianubuntu-based-distro) and use the command for the package manager of the target system(eg. `yum install`, `dnf install`, `pacman -S` etc.)
**Note**: There might be cases where one or more dependencies might not be available for your system. But that is highly unlikely. In such situations, please [create an issue](#issue-tracking-and-contributing).
## Installation
There are two ways, this app can be installed on a Debian/Ubuntu based system.
### 1. Download and install binary files
Download the latest binary .deb files from [here](https://github.com/mamolinux/theme-manager/releases/latest). Then install the GUI Frontend from terminal as
```$
sudo dpkg -i theme-manager*.deb
sudo apt install -f
```
### 2. Build and Install From Source
If you are having trouble installing the pre-built binary, build them from source.
#### Debian/Ubuntu based systems
There are two methods, this app can be installed/used on a Debian/Ubuntu based system. First, download and unzip the source package using:
```
wget https://github.com/mamolinux/theme-manager/archive/refs/heads/master.zip
unzip master.zip
cd theme-manager-master
```
1. **Option 1:** Manually copying necessary files. For that, follow the steps below:
1. Install python package sources using `meson`:
```
rm -rf builddir
meson setup -Dprefix=$HOME/.local builddir
meson compile -C builddir --verbose
meson install -C builddir
```
It will install all files under `/home//.local`. To **remove** the locally (`/home//.local`) installed files, run:
```
ninja uninstall -C builddir
```
2. To manually install for all users:
```
rm -rf builddir
meson setup builddir
meson compile -C builddir --verbose
sudo meson install -C builddir
```
The last step requires **Administrative Privilege**. So, be careful before using this. To **remove** the installed files, run:
```
sudo ninja uninstall -C builddir
```
2. **Option 2:** Build a debian package and install it. To build a debian package on your own:
1. from the `theme-manager-master` run:
```
dpkg-buildpackage --no-sign
```
This will create a `theme-manager_*.deb` package at `../theme-manager-master`.
2. Install the debian package using
```
sudo dpkg -i ../theme-manager_*.deb
sudo apt install -f
```
After it is installed, run `theme-manager` from terminal or use the `theme-manager.desktop`.
### Other Linux-based systems
1. Install the [dependencies](#other-linux-based-distro).
2. From instructions for [Debian/Ubuntu based systems](#debianubuntu-based-systems), follow **Option 1**.
## User Manual
### Auto Start
Every time Theme Manager starts automatically after PC boots up. It pops up notifications and you see its **Icon** in the system tray. To reveal the other beauties, you can click on the icon. Currently, there are four menus: **Next Theme**, **Show Logs**, **About** and **Quit**. In case, if Theme Manager doesn't start automatically, please open an [issue](#issue-tracking-and-contributing). We would like to debug the issue and help you.
To use Theme Manager, please, search for Theme Manager launcher in the menu entries and simply click on it. Setup the themes and accent colours on the settings page and click **Randomize**.
## Issue Tracking and Contributing
If you are interested to contribute and enrich the code, you are most welcome. You can do it by:
1. If you find a bug, to open a new issue with details: [Click Here](https://github.com/mamolinux/theme-manager/issues)
2. If you know how to fix a bug or want to add new feature/documentation to the existing package, please create a [Pull Request](https://github.com/mamolinux/theme-manager/compare).
### For Developers
I am managing these apps all by myself during my free time. There are times when I can't contribute for months. So a little help is always welcome. If you want to test **Theme Manager**,
1. Get the source package and unzip it using:
```
wget https://github.com/mamolinux/theme-manager/archive/refs/heads/master.zip
unzip master.zip
cd theme-manager-master
```
2. Make desired modifications.
3. Manually install using **Option 1** from [Debian/Ubuntu based systems](#debianubuntu-based-systems).
4. Test it by running in debug mode from terminal:
```
theme-manager --verbose
```
### Translation
All translations are done using using [Launchpad Translations](https://translations.launchpad.net/mamolinux). To help translate **Theme Manager** in your favourite language follow these steps:
1. Go to [translations page](https://translations.launchpad.net/mamolinux/trunk/+pots/theme-manager) on Launchpad.
2. Click on the language, you want to translate.
3. Translate strings.
4. Finally, click on **Save & Continue**.
## Contributors
### Author
[Himadri Sekhar Basu](https://github.com/hsbasu) is the author and current maintainer.
## Donations
I am a freelance programmer. So, If you like this app and would like to offer me a coffee ( ☕ ) to motivate me further, you can do so via: