Theme Editing Guide
For Linux Mint 18
with Cinnamon 3.0.7+sarah and GTK+


Chapter 1
The basics of Linux Mint 18 themes - this page

Chapter 2
Preparation

Chapter 3
Cinnamon

Chapter 4
gtk-2.0

Chapter 5
gtk-3.0

Chapter 6
Graphics

Chapter 7
Metacity









Cinnamon and GTK Themes: The Basics
For Linux Mint 18
( Go here for Mint 17 )

Installation:
The simplest way to install a new Cinnamon theme is with the Themes manager in System Settings.
Go to System Settings > Themes > Add/remove desktop themes > Available themes (online) > Refresh list
You can choose by Popularity, Name, or Date, or Search.
The theme will be installed to your hidden folder /home/user/.themes

Of course, many more themes are available for download on various websites, such as:
cinnamon-spices  - http://cinnamon-spices.linuxmint.com/themes
linuxmint-art.org  - http://linuxmint-art.org/content/search.php
gnome-look.org - http://gnome-look.org/content/search.php
deviantart.com - http://www.deviantart.com/?q=cinnamon+theme#
opendesktop.org - http://opendesktop.org/content/search.php
noobslab.com - http://www.noobslab.com/p/themes-icons.html
ubuntuthemes.org - http://www.ubuntuthemes.org/

Extract the downloaded theme from the zipped download (tar.gz) file by right-clicking on the file > Open with Archive Manager > Extract. Then move the extracted folder into your /home/user/.themes folder.
 
If /home/yourusername/.themes does not exist, you will have to create it first. Open a terminal and enter:
mkdir $HOME/.themes 

The theme will then appear in System Settings > Themes, after refreshing the list.



Installed Themes, Other Settings, Controls, Window Borders:

To see how themes are constructed, first take a look in the Mint-X folder,  /usr/share/themes/Mint-X/
You will see sub-folders, cinnamon, gtk-2.0, gtk-3.0, metacity-1, xfce-notify-4.0, and xfwm4
The last two are only for xfce, and are not used in the Cinnamon desktop.



Many Cinnamon themes you download may contain only the cinnamon folder, and do not have the gtk parts, so those themes will control only the elements listed above - the Main Menu, Panel, and Calendar, and the right-click popup menus on the Panel, etc.



Cinnamon - Installed Themes

The cinnamon folder in /usr/share/themes/Mint-X/ contains the elements which control the Main Menu, Panel (taskbar), and Calendar, and the right-click popup menus on the Panel, and a few other basic elements of the Cinnamon desktop.

The Cinnamon Themes you have installed are available in System Settings > Themes > Desktop

Desktop - Cinnamon theme




gtk-2.0 and gtk-3.0  - Controls

The gtk-2.0 and gtk-3.0 folders contain the elements which control the theme of the program windows.
The gtk-2.0 controls the colors and fonts of the programs that rely on gtk-2.0, such as gedit, medit, Seamonkey, VLC, Synaptic, LibreOffice, and GIMP.
The gtk-3.0 controls the colors and fonts of the programs that are built for gtk-3.0, such as Nemo, Bluefish, and System Settings.

The GTK Themes you have installed are available in System Settings > Themes > Controls

Controls - gtk

You can download GTK3 themes from any of the websites listed above.

Any theme listed as GTK3 will also include GTK2. Themes listed as GTK2 (no GTK3) or listed as Gnome Shell will not work in Linux Mint 16.
Most themes under the "GTK3" category will work for both Unity and Gnome-shell, as well as Cinnamon. But not all GTK3 themes will work correctly. It depends on if they have been updated to work with the newest Mint version. You should be able to tell from the Comments and Changelog on the download site.



Metacity - Window Borders

The metacity-1 folder contains the elements which control the window title bar and window border for all program windows.

metacity - Wndow Borders



There is a wide variety of metacity Window Borders. Here are two unique examples, in addition to the Minty-Green Window Border above.

Big Mint
Big Mint metacity

Steampunk
Steampunk metacity

Often, but not always, a GTK3 theme that you download will include the metacity Window Border element. Metacity-only themes can be downloaded, as well.

Metacity Window Borders are generally made to be chameleons - that is, they magically change their colors according to their surroundings. 

Here is one metacity Window Border, GnomishBeige, with the Rainy Day Blues gtk3 Controls.

metacity - GnomishBeige


And here is the same metacity Window Border, GnomishBeige, with the Autumn Woods gtk3 Controls.

metacity - Autumn Woods

The chameleon metacity Window Border has changed it's color to match the Autumn Woods gtk theme.

Sometimes, you will have to refresh Cinnamon ( Alt-F2 > r ) to see the effect when you change Window Borders.



Root Programs

When you install a gtk theme, it will control the theme of the programs that you run, as detailed above. However, the themes that you have installed in /home/yourusername/.themes will not control any program that you run as Administrator (root).

When you start Software Sources or Synaptic or any other program that requires root privileges, you are not operating as "user" anymore, you are someone else - root. If you want root to use the same theme you are using in other programs, you have to copy or move that theme to /usr/share/themes

Alternatively, you can create a link to your theme in /usr/share/themes. That has the advantage of making it simpler to make changes to your theme. You only have to make the change in /home/yourusername/.themes/MyTheme, instead of editing MyTheme in both locations.
Example:
I want root to use My Favorite Theme in /home/myusername/.themes/My Favorite Theme. So I create a link to that theme with this command in a terminal:
sudo ln -s /home/myusername/.themes/"My Favorite Theme" /usr/share/themes/"My Favorite Theme"
Now, when I open Synaptic, it is using My Favorite Theme.

Alternatively, you can make links to all of your customized themes in your .themes folder with the command:
sudo ln -s ~/.themes/* /usr/share/themes/



Next Chapter - Chapter 2: Preparation