Git Product home page Git Product logo

chameleon's Introduction

Chameleon

alt-text

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

alt-text

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

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

chameleon's People

Contributors

eylles avatar gideonwolfe avatar obitorasu avatar paul-houser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

chameleon's Issues

Chameleon crash when ~/.config/chameleon/ and ~/.config/chameleon/config.yaml path doesn't exist

I noticed that when install with make, the instructions do not mention creating a ~/.config/chamelon/ directory which is supposed to contain the config.yaml file. Based on the code:

# get config path
config_dir = home + '/.config/chameleon'
config_path = home + '/.config/chameleon/config.yaml'

the script simply crashes when these paths don't exist and the user has to manually create them to get things working. My suggestion is to check if these paths exist on the system and if not then create them for the user.

clarify license

hi there,
to users out there it might be nice to know under what type of license the source code is distributed.
would it perhaps be possible to add a license to clarify?

ckb-next colour theme

Your readme says that this script supports ckb-next, but I'm unable to see how your script changes the color of the keyboard.
I've had a little look into the best way to achieve such a thing and came across the issue you raised with them.

Any recommendations?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.