Elegance Colors is a chameleon theme for Gnome Shell. It can change colors according to the current GTK theme, current wallpaper (uses imagemagick to get color) or a user defined color. Also various other aspects of the theme are customizable.
CSS Vala Shell Makefile
Latest commit ca44e2f Mar 1, 2015 @satya164 satya164 Merge pull request #53 from Edenhofer/patch-1
switched bc with awk - hence removing the bc dep

README.md

Introduction

Elegance Colors is a highly customizable chameleon theme for Gnome Shell. It can change colors according to the current GTK theme, current wallpaper (uses imagemagick to get color) or use a user defined color.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see gnu.org/licenses.

Copyright (C) Satyajit Sahoo

Installation

Ubuntu users can install Elegance Colors from our themes PPA using the following commands,

sudo add-apt-repository ppa:satyajit-happy/themes
sudo apt-get update && sudo apt-get install gnome-shell-theme-elegance-colors

Fedora and OpenSUSE users can add the appropriate repo from opensuse build service and install the package gnome-shell-theme-elegance-colors via the distro's package manager.

Arch Linux users can install Elegance Colors from aur.

If you use another distro, you need to compile from source. This is needed for the GUI.

Don't worry, it is easy and straight forward.

You need to install the build-dependencies first (package names may vary depending on your distro),

glib2-devel gtk3-devel vala

Extract the archive, navigate to the directory and type the following commands in a terminal,

make sudo make install

To derive color from wallpaper, you need to install ImageMagick

Also install the User Theme Extension for Gnome Shell.

Setup

A process runs in background which detects changes, generates the theme and reloads the theme accordingly. After installation, you must run the following command to start the background process,

elegance-colors

To set the theme, choose the theme via Gnome Tweak Tool or run the following commands,

gsettings set org.gnome.shell.extensions.user-theme name 'elegance-colors'

You can launch the GUI from the menu which lets you customise various aspects of the the theme. You can also export your customized theme, import/export settings from the GMenu. Click on the title in the Gnome Shell top bar to get the GMenu. You can also launch the GUI by running:

elegance-colors-prefs

Advanced configuration

Apart from the included presets, Elegance Colors supports user presets installed under ~/.config/elegance-colors/presets/

To create a preset, just export your customized settings from the GMenu and give it a name by editing the exported file and adding the following at the beginning,

# Name: Your Awesome Name

You can also change the settings by editing the file ~/.config/elegance-colors.ini instead of using the GUI. It also gives more power to you by enabling you to use symbolic colors.

For example, you can use,

button_activebg1=@mode

Where @mode is the color derived from the wallpaper, GTK theme or a custom color.

There are 3 methods for manipulating colors, alpha - for making a color translucent, shade - to darken or lighten a color, tint - to mix a color with another.

For example, you can use,

button_activebg1=shade;@mode;-10

It takes the symbolic color @mode, and darkens it by "10". You can have a look at the included presets to have more understanding.

If you want even more customization, you can include single line custom CSS code,

For example,

[Include]
include_code=.toggle-switch-us:checked,.toggle-switch-intl:checked{background-color:rgba(83,169,63,1.0);}

If that's not enough, you can also include a custom CSS file to override the values in the default template.

To include a custom CSS file, create a directory under ~/.config/elegance-colors/presets/ and put all required files there. Then list the files to be included in the configuration file,

For example,

[Include]
include_dir=custom
include_css=close.css;switches.css
include_files=close.png;on.png;off.png

Troubleshooting

It is recommended to stop any previous instances of elegance-colors when updating to a new version. You can stop the running process of elegance-colors with the command,

elegance-colors stop

To view any error messages produced, run the process in Terminal,

elegance-colors start

To manually apply changes, run,

elegance-colors apply

If your theme fails to apply after an upgrade, it is likely that the config file doesn't include new options. To update the config file, run,

elegance-colors update

To export the theme, run,

elegance-colors export /path/to/themefile.zip

Getting the source

You can get the latest source code from the GitHub page.

git clone git@github.com:satya164/elegance-colors.git

Bugs and feature requests

Please submit bugs and feature requests here.