Chameleon
This script acts as an extension to wal, by taking the generated colors and theming anything that can be themed, all in one script.
If the script detects you have certain programs on your system, it will try to generate themes for them.
The current programs are ones that I use, but feel free to add more and send a PR!
Examples
Programs that use GTK themes like Thunar and Baobab should just pick up the theme, assuming you have selected the oomox-xresources-reverse
theme in lxappearance
. Spotify, Discord, Firefox, and gnuplot are shown here rocking their custom generated themes.
Programs that use Qt themes can also be configured to take themes from GTK, meaning we can theme them as well! The programs must be launched with the --style gtk2
flag, and you must install and configure qt5-styleplugins.
Installation
git clone https://github.com/GideonWolfe/Chameleon/
cd Chameleon
make install
Usage
chameleon -i [path to picture] [options for wal]
chameleon -t [wal theme] [options for wal]
Configuration
Configuration of chameleon
is done through the file $HOME/.config/chameleon/config.yaml
Here, one can specify options specific to a single program, or even specify custom commands to be run every time you apply a theme.
Most programs will have a path
attribute which may or may not be necessary depending on your setup. For example, if you were using a cloned, local version of wal-discord
, one
might want to specify a specific path where chameleon
can find this specific executable.
If the path
attribute is not given for a program, it is assumed that the program is located in your $PATH
and will be run as a standalone command.
Programs supported
-
oomox for GTK and Spotify
-
StartTree: Dynamic browser startpage
-
ckb-next for corsair keyboards
-
razer-cli for razer devices
-
telegram-palette-gen for telegram-desktop
-
spicetify: CSS Customization engine for spotify
-
Pywalfox to theme FireFox and DuckDuckGo on the fly
-
pywal-discord to theme Discord
-
wal-discord to theme Discord
Planned support
Notes
To get the most complete theme possible, check out my dotfiles. Here you can find the configurations to get these colors on many other programs, such as rofi, polybar, firefox, and more. Since they update automatically, there was no need to include them in this script.
To apply icon themes, you need one of the icon sets supported by oomox. Change the icons section of the config file to look for the folder your desired icons are in, and change the command to the appropriate variant.
To use the new icon themes added to oomox, you have to create a executable file in $HOME/.local/bin
with a similar naming schema like the example command used for gnome colors icon theme in config.yaml
. The content of the executable should be something like:
#!/bin/bash
cd /opt/oomox
exec ./plugins/{path to change_color.sh file for your respective icon theme under plugins} "$@"
With the above executable created, all you have to do is to give it execute permission by using chmod +x
and use the name of the executable as the command for your icon theme in the config.yaml
file. Note: Make sure $HOME/.local/bin
is added to your PATH.
Upgrade from v1 to v2
Simply delete the old chameleon
executable at /usr/local/bin/chameleon
. Now use chameleon.py
which should be symlinked to $HOME/.local/bin/chameleon.py
.
$HOME/.local/bin/
must be on your $PATH