base | ||
images | ||
themes | ||
change_theme.py | ||
current_theme | ||
README.md | ||
set_color_scheme.sh | ||
set_theme.sh |
Orthogonal markers
no preview yet!
This is a simple framework to develop pure CSS gtk3 and gtk4 themes, with an accompanying gtk2 that I'll try to make it as automatable as possible to obtain.
GTK 3 and 4 work with color CSS files generated by the defunct/archived Gradience.
The idea is to create a CSS structure that allows different themes to reuse some code, freeing my energy to think of the fun part: actual customization of the elements.
Now why orthogonal, you say? Because the idea is to create a CSS code that is as simple as possible, and because, like any programmer, I don't like repeating code, and because I love that each function and state are clearly readable from the aspect of a control. Since I won't be using SASS or any other CSS preprocessor, then each function and state need as much orthogonality as possible, that is: I use different CSS properties to mark each state (be it hover, active, checked, disabled...). CSS does not have so many properies, therefore it's not a very easy task.
You can see some achievement with my previous themes skeuo-gradience, hightech-gradience and simple-gradience. Acually, having/maintaining these three very similar in intention and code base themes is what has made me think of creating this framework.
I'll bring these here too, as close as possible.
The base theme is skeuo (the one which contains only links to the base theme).
To create a new theme based on another one, you may copy themes/original
to themes/new_theme
. Then, when you want to modify one of the CSS, you should:
- remove the links to the original one (i.e.
themes/new_theme/gtk-4.0/checks-radios.css
to alter how checks and radios are seen) - copy the original one instead of the link (following the above example,
cp base/common/checks-radios.css themes/new_theme/gtk-4.0/
) - Edit the file! Since it is a copy of the original, the modifications will only affect
new_theme
. Notice that you only need to modify the file ingtk-4.0
folder, since the one ingtk-3.0
is a link to the one ingtk-4.0
.
The structure of the project is inspired by Azurra framework.
Still a work in progress
TODO
- Improve default color schemes and default theme (
skeuo
) appearance.- Improve arrows and their icons sometimes not appearing.
- Add Nemo support (See this and this)
- Python script that allows you to chose a light and dark theme, (for
gtk.css
andgtk-dark.css
) and which also adapts GTK2 theme and XFWM4 theme. - Maybe it could also provide a
qt(5|6)ct
color scheme, Plasma color scheme, although it would have to deal with CSS named colors somehow. - Maybe offer the possibilty to also manage different gtk2 themes, or xfwm4 themes.
- what about Aurorae (svg) themes, and Kvantum (svg) themes for Plasma?
- Also add libadwaita themeing for Gnome.
- create new theme from original base theme (
skeuo
, for now).