Commit 6d7074d4 authored by Jan Blackquill's avatar Jan Blackquill 🌈
Browse files

Revert "Remove Breeze for GTK2"

This reverts commit bf888d94.
parent bf888d94
......@@ -8,6 +8,7 @@ find_package(ECM 0.0.9 REQUIRED NO_MODULE)
include(FeatureSummary)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
find_package(GTKEngine)
find_package(Sass REQUIRED)
find_package(PythonCairo)
set_package_properties(PythonCairo PROPERTIES TYPE REQUIRED PURPOSE "Required to render assets")
......
# Breeze GTK
# Gnome-breeze
A GTK3 and GTK4 theme following the look and feel of KDE's Breeze.
A GTK Theme Built to Match KDE's Breeze. GTK2 theme made by [scionicspectre](https://github.com/scionicspectre/BreezyGTK)
# Requirements
- GTK3 or GTK4
- GTK+ 3.16
- Pixmap/Pixbuf theme engine for GTK 2
# Install instructions
If your distribution doesn't provide a package, you can install the theme system-wide by copying it to the appropriate directory, usually "/usr/share/themes".
......
include(KDEInstallDirs)
set_package_properties(GTKEngine PROPERTIES
DESCRIPTION "Pixmap/Pixbuf theme engine for GTK 2"
URL "http://www.gtk.org/"
TYPE RUNTIME
PURPOSE "Required for GTK 2 theme")
set(_versions 2.20 2.18 2.16 2.14 2.12
2.10 2.8 2.6 2.4 2.2 2.0
1.20 1.18 1.16 1.14 1.12
1.10 1.8 1.6 1.4 1.2 1.0)
foreach(_ver ${_versions})
find_library(GTKPIXMAP_PLUGIN NAMES pixmap
PATHS
${KDE_INSTALL_FULL_LIBDIR}/gtk-2.0/${_ver}.0/engines)
endforeach()
if(NOT ${GTKPIXMAP_PLUGIN} STREQUAL "GTKPIXMAP_PLUGIN-NOTFOUND")
set(GTKEngine_FOUND TRUE)
endif()
file(GLOB_RECURSE SCSS_SOURCES "*.scss")
file(GLOB CSS_SOURCES "*.css")
file(GLOB_RECURSE GTK2_SOURCES "gtk2/*")
set(SOURCES
${SCSS_SOURCES}
${CSS_SOURCES}
${GTK2_SOURCES}
render_assets.py
build_theme.sh
)
......@@ -11,6 +13,7 @@ set(SOURCES
function(gen_targets THEME_NAME)
set(THEME_DIR "${PROJECT_BINARY_DIR}/${THEME_NAME}")
set(${THEME_NAME}_TARGETS
"${THEME_DIR}/gtk-2.0/gtkrc"
"${THEME_DIR}/gtk-3.0/gtk.css"
PARENT_SCOPE
)
......
......@@ -3,7 +3,7 @@ set -e
# Usage: create_folders <target-directory>
create_folders () {
for j in gtk-3.0 gtk-4.0; do
for j in gtk-2.0 gtk-3.0 gtk-4.0; do
if ! [ -d "$1/$j" ]; then
mkdir -p "$1/$j"
fi
......@@ -28,7 +28,7 @@ install_theme () {
fi
echo "Installing into ${THEME_INSTALL_TARGET}"
mkdir -p "${THEME_INSTALL_TARGET}"
for dir in assets gtk-3.0 gtk-4.0; do
for dir in assets gtk-2.0 gtk-3.0 gtk-4.0; do
if [ -d "${THEME_INSTALL_TARGET}/$dir" ]; then
rm -rf "${THEME_INSTALL_TARGET:?}/$dir"
fi
......@@ -41,8 +41,9 @@ install_theme () {
render_theme () {
THEME_BUILD_DIR="$(mktemp -d)"
create_folders "${THEME_BUILD_DIR}"
cp -R gtk2/* "${THEME_BUILD_DIR}/gtk-2.0/"
python3 render_assets.py -c "$1" -a "${THEME_BUILD_DIR}/assets" \
-G "${THEME_BUILD_DIR}" -b "$4"
-g "${THEME_BUILD_DIR}/gtk-2.0" -G "${THEME_BUILD_DIR}" -b "$4"
build_sass gtk3/gtk.scss "${THEME_BUILD_DIR}/gtk-3.0/gtk.css" "${THEME_BUILD_DIR}"
build_sass gtk4/gtk.scss "${THEME_BUILD_DIR}/gtk-4.0/gtk.css" "${THEME_BUILD_DIR}"
rm -f "${THEME_BUILD_DIR}/_global.scss"
......
style "button"
{
xthickness = 4
ythickness = 5
engine "pixmap"
{
image
{
function = BOX
state = NORMAL
file = "../assets/button.png"
border = {4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = PRELIGHT
file = "../assets/button-hover.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = ACTIVE
file = "../assets/button-active.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = INSENSITIVE
file = "../assets/button-insensitive.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
# Arrows
image
{
function = ARROW
state = NORMAL
overlay_file = "../assets/arrow-up.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = UP
}
image
{
function = ARROW
state = PRELIGHT
overlay_file = "../assets/arrow-up.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = UP
}
image
{
function = ARROW
state = ACTIVE
overlay_file = "../assets/arrow-up.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = UP
}
image
{
function = ARROW
state = INSENSITIVE
overlay_file = "../assets/arrow-up-insensitive.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = UP
}
image
{
function = ARROW
state = NORMAL
overlay_file = "../assets/arrow-down.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = DOWN
}
image
{
function = ARROW
state = PRELIGHT
overlay_file = "../assets/arrow-down.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = DOWN
}
image
{
function = ARROW
state = ACTIVE
overlay_file = "../assets/arrow-down.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = DOWN
}
image
{
function = ARROW
state = INSENSITIVE
overlay_file = "../assets/arrow-down-insensitive.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = DOWN
}
image
{
function = ARROW
state = NORMAL
overlay_file = "../assets/arrow-left.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = LEFT
}
image
{
function = ARROW
state = PRELIGHT
overlay_file = "../assets/arrow-left.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = LEFT
}
image
{
function = ARROW
state = ACTIVE
overlay_file = "../assets/arrow-left.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = LEFT
}
image
{
function = ARROW
state = INSENSITIVE
overlay_file = "../assets/arrow-left-insensitive.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = LEFT
}
image
{
function = ARROW
state = NORMAL
overlay_file = "../assets/arrow-right.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = RIGHT
}
image
{
function = ARROW
state = PRELIGHT
overlay_file = "../assets/arrow-right.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = RIGHT
}
image
{
function = ARROW
state = ACTIVE
overlay_file = "../assets/arrow-right.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = RIGHT
}
image
{
function = ARROW
state = INSENSITIVE
overlay_file = "../assets/arrow-right-insensitive.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
arrow_direction = RIGHT
}
image
{
function = TAB
state = INSENSITIVE
overlay_file = "../assets/arrow-down-insensitive.png"
overlay_stretch = FALSE
}
image
{
function = TAB
state = NORMAL
overlay_file = "../assets/arrow-down.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
}
image
{
function = TAB
state = PRELIGHT
overlay_file = "../assets/arrow-down.png"
overlay_border = { 0, 0, 0, 0 }
overlay_stretch = FALSE
}
}
}
style "togglebutton"
{
xthickness = 4
ythickness = 5
engine "pixmap"
{
image
{
function = BOX
state = NORMAL
file = "../assets/togglebutton.png"
border = {4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = PRELIGHT
file = "../assets/togglebutton-hover.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = ACTIVE
file = "../assets/togglebutton-active.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
image
{
function = BOX
state = INSENSITIVE
file = "../assets/togglebutton-insensitive.png"
border = { 4, 4, 4, 4 }
stretch = TRUE
}
}
}
style "spinbutton" = "default"
{
#bg[NORMAL] = @bg_color
xthickness = 3
ythickness = 3
GtkWidget::interior_focus = 1
engine "pixmap"
{
image
{
function = ARROW
}
#Spin-up
image
{
function = BOX
state = NORMAL
detail = "spinbutton_up"
file = "../assets/spinbutton-up.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-up.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = PRELIGHT
detail = "spinbutton_up"
file = "../assets/spinbutton-up.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-up-hover.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = INSENSITIVE
detail = "spinbutton_up"
file = "../assets/spinbutton-up-insensitive.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-up-insensitive.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = ACTIVE
detail = "spinbutton_up"
file = "../assets/spinbutton-up.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-up-active.png"
overlay_stretch = FALSE
}
# Spin-Down
image
{
function = BOX
state = NORMAL
detail = "spinbutton_down"
file = "../assets/spinbutton-down.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-down.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = PRELIGHT
detail = "spinbutton_down"
file = "../assets/spinbutton-down.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-down-hover.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = INSENSITIVE
detail = "spinbutton_down"
file = "../assets/spinbutton-down-insensitive.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-down-insensitive.png"
overlay_stretch = FALSE
}
image
{
function = BOX
state = ACTIVE
detail = "spinbutton_down"
file = "../assets/spinbutton-down.png"
border = { 5, 5, 5, 5 }
stretch = TRUE
overlay_file = "../assets/arrow-small-down-hover.png"
overlay_stretch = FALSE
}
}
}
style "button_label" {
fg[NORMAL] = @button_fg_color
fg[ACTIVE] = @button_fg_color
fg[INSENSITIVE] = @button_insensitive_fg_color
}
style "combobox_separator"
{
xthickness = 0
ythickness = 0
GtkWidget::wide-separators = 1
}
gtk-auto-mnemonics = 1
style "default"
{
xthickness = 1
ythickness = 1
# Style Properties
GtkScrollbar::activate-slider = 1
GtkWidget::focus-line-width = 0
GtkWidget::new-tooltip-style = 1
GtkWidget::tooltip-alpha = 230
GtkWidget::tooltip-radius = 2
GtkMenuBar::window-dragging = 1
GtkToolbar::window-dragging = 1
GtkToolbar::internal-padding = 5
GtkToolButton::icon-spacing = 4
GtkSeparatorMenuItem::horizontal-padding = 3
GtkSeparatorMenuItem::wide-separators = 1
GtkSeparatorMenuItem::separator-height = 1
GtkCheckMenuItem::indicator-size = 18
GtkRadioMenuItem::indicator-size = 18
GtkButton::child-displacement-y = 0
GtkButton::default-border = { 0, 0, 0, 0 }
GtkButton::default-outside_border = { 0, 0, 0, 0 }
GtkScrollbar::trough-border = 0
GtkScrollbar::slider-width = 20
GtkRange::trough-border = 0
GtkRange::slider-width = 7
GtkRange::stepper-size = 0
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper = 1
GtkScrollbar::stepper-size = 4
GtkScrollbar::stepper-spacing = 0
GtkScrolledWindow ::scrollbar-spacing = 0
GtkScrolledWindow ::scrollbars-within-bevel = 1
GtkVScale::slider_length = 20
GtkVScale::slider_width = 20
GtkHScale::slider_length = 20
GtkHScale::slider_width = 20
GtkStatusbar::shadow_type = GTK_SHADOW_NONE
GtkSpinButton::shadow_type = GTK_SHADOW_NONE
GtkMenuBar::shadow-type = GTK_SHADOW_NONE
GtkMenuBar::internal-padding = 3
GtkMenu::horizontal-padding = 0
GtkMenu::vertical-padding = 0
GtkNotebook::tab-overlap = 1
GtkNotebook::tab-curvature = 3
GtkCheckButton::indicator_spacing = 3
#GtkOptionMenu::indicator_spacing = { 0, 0, 0, 0 }
GtkTreeView::row_ending_details = 0
GtkTreeView::expander-size = 12
GtkTreeView::vertical-separator = 1
GtkTreeView::horizontal-separator = 4
GtkTreeView::allow-rules = 1
GtkProgressBar::min-horizontal-bar-height = 8
GtkProgressBar::min-vertical-bar-width = 8
GtkEntry::state-hint = 1
# Colors
bg[NORMAL] = @bg_color
bg[PRELIGHT] = @bg_color
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = @bg_color
bg[ACTIVE] = @bg_color
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = @insensitive_fg_color
fg[ACTIVE] = @fg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = @insensitive_text_color
text[ACTIVE] = @selected_fg_color
base[NORMAL] = @base_color
base[PRELIGHT] = @base_color
base[SELECTED] = @selected_bg_color
base[INSENSITIVE] = @bg_color
base[ACTIVE] = @selected_bg_color
# All pixmap options are consolidated below this point
engine "pixmap"
{
# Check Buttons
image
{
function = CHECK
recolorable = TRUE
state = NORMAL
shadow = OUT
overlay_file = "../assets/check-unchecked.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = PRELIGHT
shadow = OUT
overlay_file = "../assets/check-unchecked-hover.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = ACTIVE
shadow = OUT
overlay_file = "../assets/check-unchecked-active.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = SELECTED
shadow = OUT
overlay_file = "../assets/check-unchecked.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = INSENSITIVE
shadow = OUT
overlay_file = "../assets/check-unchecked-insensitive.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = NORMAL
shadow = IN
overlay_file = "../assets/check-checked-active.png"
overlay_stretch = FALSE
}
image
{
function = CHECK
recolorable = TRUE
state = PRELIGHT
shadow = IN
overlay_file = "../assets/check-checked-hover.png"