An extended re-implementation of GNOME's dark theme switcher
This is my own re-implementation of GNOME's dark theme switcher. It operates similarly to theme default theme switcher, but with added support for:
- Wallpaper switching (custom wallpapers)
- Custom cursors
- Custom themes (gradience and legacy gtk-3 themes)
- Shell theme switching
- Terminal profile switching
These features are enabled by default, but can be easily extended to essentially any setting on the system.
This program uses a sort of "snapshot" system that runs ontop of gsettings.
When you want to set the light/dark theme, configure your theme how you like
and run the program with either the --setup-light
or --setup-dark
flags.
This will
save the settings specified in targets
under either the light or dark theme.
These settings are restored when their respective theme is activated.
When you first run this program, it will fail saying that you need to set up the themes. This is normal.
To customize what settings this program saves, edit the targets
file in $HOME/.config/better-theme-switcher/targets
.
Each line corresponds to a property in gsettings
. The ones there by default are usually enough to
cover most customizations, but you can add/remove whatever you wish.
Next, set up your desktop how you want it to look in it's light/dark theme (wallpaper, gtk theme, cursor, etc).
Once you're done, run better-theme-switcher --setup-[dark/light]
. This will save your
current configuration under them theme you specified. Do this again for the other theme.
There really isnt much else to do aside from adding the program to startup if you want.
Currently the only way to install this program is to build it from it's source. I plan to add it to the AUR soon!
Download the code using git
git clone https://github.com/KCGD/better-theme-switcher.git
cd better-theme-switcher
Make sure you have nodejs
npm
and make
installed.
Arch:
(as root) pacman -S nodejs npm
Debian / Debian derivatives:
(as root) apt install nodejs npm
Once in the repo's root, run:
npm i
To build the code, run:
make build
This should make an executable in the Builds folder.
This project is free and open source under the GPLv2 license!