Designed to switch themes (Kvantum and GTK3) to suitable ones, simultaneously with changing the style of your system.
Unified Theme Switcher automatically switches themes across multiple toolkits when you change the system color scheme (light/dark). Uses a plugin architecture — each toolkit backend is a separate plugin.
## Architecture
The service is written in [ContenT](https://gitlab.eterfund.ru/ximperlinux/content) language. Plugins are compiled separately via `content build-lib` and loaded at runtime.
## Plugins
### Plugin types
**Config-managed plugins** declare `prefix()`, `default_light()`, `default_dark()`. The service stores `{PREFIX}_LIGHT_THEME` and `{PREFIX}_DARK_THEME` in its config and passes the resolved theme name to `apply()`.
**Self-managed plugins** don't have `prefix()`. They receive just the mode (`"light"` or `"dark"`) in `apply()` and handle everything internally.
### Plugin interface
Every plugin must implement:
| Function | Required | Description |
|----------|----------|-------------|
| `is_available (): bool` | Yes | Check if the backend is available |
| `apply (theme: string)` | Yes | Apply a theme (name or mode) |
Requires the [ContenT](https://gitlab.eterfund.ru/ximperlinux/content) compiler.
## Issues and Suggestions
If you have any questions or suggestions, please create them in the [Issues section](https://gitlab.eterfund.ru/ximperlinux/ximper-unified-theme-switcher/issues).