Commit bf888d94 authored by Janet Blackquill's avatar Janet Blackquill 🌈
Browse files

Remove Breeze for GTK2

GTK2 is obsolete and EOL. All applications worth supporting have moved on from GTK2 or are obsolete and no longer shipped by distros. There is no point maintaining something designed to support software no longer supported by its developers/maintainers and an ecosystem.
parent 96c2f79c
......@@ -8,7 +8,6 @@ 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")
......
# Gnome-breeze
# Breeze GTK
A GTK Theme Built to Match KDE's Breeze. GTK2 theme made by [scionicspectre](https://github.com/scionicspectre/BreezyGTK)
A GTK3 and GTK4 theme following the look and feel of KDE's Breeze.
# Requirements
- GTK+ 3.16
- Pixmap/Pixbuf theme engine for GTK 2
- GTK3 or GTK4
# 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
)
......@@ -13,7 +11,6 @@ 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-2.0 gtk-3.0 gtk-4.0; do
for j in 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-2.0 gtk-3.0 gtk-4.0; do
for dir in assets gtk-3.0 gtk-4.0; do
if [ -d "${THEME_INSTALL_TARGET}/$dir" ]; then
rm -rf "${THEME_INSTALL_TARGET:?}/$dir"
fi
......@@ -41,9 +41,8 @@ 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}/gtk-2.0" -G "${THEME_BUILD_DIR}" -b "$4"
-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"
overlay_stretch = FALSE