Generate base16 color schemes from images
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2.1 KiB

Auto Base16 Theme

/code/macoy/auto-base16-theme/src/commit/352cafc1d7286f4f06f631a10d0bd683bd916988/images/Example4.jpg

What it does

This script generates a base16 color theme intended for code syntax highlighting from a source image.

This means you can have beautiful, readable themes which match your desktop background without having to do any work.

I currently only have a template for Emacs, but it should work for any editor which supports base16. If you create a template for your format/editor of choice, please feel free to create a pull request adding that template so others can benefit from it.

Setup

This script relies on schemer2 to choose colors from images. It then takes the output of schemer2 and selects colors which fit the base16 format. Make sure you have Go installed, then install schemer2:

go get github.com/thefryscorer/schemer2

AutoBase16Theme.py requires Python 3.

How to Use

Run the following command, replacing `your image` with the image you want the theme's colors to be pulled from:

schemer2 -format img::colors -in [your image] -out colors.txt && python3 AutoBase16Theme.py [your template] [your output file]

`schemer2` generates the color palette from the source image and outputs a list of color values to `colors.txt`. We then run AutoBase16Theme.py (which loads `colors.txt` by default). AutoBase16Theme.py selects from these color values (and modifies them, if necessary) such that a good theme is created. It loads `your template` and writes the final theme to `your output file`. For example, I have an image 'wallpaper.jpg' and I want an Emacs base16 theme to be generated:

schemer2 -format img::colors -in wallpaper.jpg -out colors.txt && python3 AutoBase16Theme.py emacs-base16-theme-template.el base16-my-wallpaper-theme.el

I can then copy `base16-my-wallpaper-theme.el` into my Emacs base16 directory and evaluate it, then select it as a theme.

Additional Arguments

Note that running

python3 AutoBase16Theme.py

will output help with argument descriptions.

Example results

/code/macoy/auto-base16-theme/src/commit/352cafc1d7286f4f06f631a10d0bd683bd916988/images/Example1.jpg /code/macoy/auto-base16-theme/src/commit/352cafc1d7286f4f06f631a10d0bd683bd916988/images/Example2.jpg /code/macoy/auto-base16-theme/src/commit/352cafc1d7286f4f06f631a10d0bd683bd916988/images/Example3.jpg