https://github.com/sayandipdutta/themechanger
ThemeChanger is a command line utility, designed to work primarily with Auto Dark Mode. It changes themes for programs that support dark mode, but do not obey dynamic/adaptive theming on Windows.
https://github.com/sayandipdutta/themechanger
adaptive-theme auto-dark-mode dynamic-themes
Last synced: 4 months ago
JSON representation
ThemeChanger is a command line utility, designed to work primarily with Auto Dark Mode. It changes themes for programs that support dark mode, but do not obey dynamic/adaptive theming on Windows.
- Host: GitHub
- URL: https://github.com/sayandipdutta/themechanger
- Owner: sayandipdutta
- License: mit
- Created: 2021-12-30T13:35:34.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-07-08T20:47:22.000Z (11 months ago)
- Last Synced: 2025-10-09T05:40:10.846Z (8 months ago)
- Topics: adaptive-theme, auto-dark-mode, dynamic-themes
- Language: Go
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Program to change themes for certain programs that don't support Dynamic Themeing in Windows
## Requirements:
1. Windows 10 or higher
2. Auto Dark Mode >= 10.0.0
3. Golang >= 1.23.5 (If you plan to build from source)
## Installation
```sh
go install github.com/sayandipdutta/themechanger
```
If you plan to build from source, you will need to install Go from [here](https://golang.org/doc/install).
After you are done installing. Get the repo and run the following command:
```
git clone https://github.com/sayandipdutta/themechanger.git
cd themechanger
go mod tidy
go build
```
`themechanger.exe` file will be created in the `pwd`.
You can then add it to your `%PATH` (`$Env:PATH` from `powershell`).
## Usage
1. Open the Auto Dark Mode scripts file (see [Installation](#installation))
2. Add the following line to the end of the file:
```
- Name: ProgramThemeSwitcher
Command: themechanger.exe # if added to PATH, else the full path to the exe
ArgsLight: [-light]
ArgsDark: []
AllowedSources: [Any]
```
The `scripts.yml` file should look like this:
```
Enabled: true
Component:
TimeoutMillis: 10000
Scripts:
- Name: ProgramThemeSwitcher
Command: themechanger.exe # if added to PATH, else the full path to the exe
ArgsLight: [-light]
ArgsDark: []
AllowedSources: [Any]
```
Usage of `themeChange.exe` is as follows:
```
Usage of themeChange.exe:
Flags:
-light light
If given, light theme will be set, otherwise `dark`.
Example:
.\themeChange.exe
.\themeChange.exe -light
```
## Configuration:
`themechanger` looks for the config file in `$Env:THEMECHANGER_CONFIG`.
So populate a `json` file with the following structure:
```json5
{
"YourAppName": {
"light": "X:full\\path\\to\\light\\themeconfig\\for\\YourAppName",
"dark": "X:full\\path\\to\\dark\\themeconfig\\for\\YourAppName",
"configpath": "X:full\\path\\to\\YourApp's\\Default\\ConfigPath"
},
// ... other apps
}
```
And set the path of the file as `$Env:THEMECHANGER_CONFIG`