<table><tr><td style="">gepardo created this revision.<br />Herald added a project: Plasma.<br />Herald added a subscriber: plasma-devel.<br />gepardo requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D17154">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>As it was explained in <a href="https://phabricator.kde.org/D16365" class="remarkup-link" target="_blank" rel="noreferrer">https://phabricator.kde.org/D16365</a>,</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>Further potential steps in the same direction of saving code would be going back to SASS</p></blockquote>

<p>This patch tries to go back to SCSS sources with backporting all the fixes made in Breeze-gtk recently. As a base, I used this repository: <a href="https://github.com/dirruk1/gnome-breeze" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/dirruk1/gnome-breeze</a>. But it's outdated, so I walked through the commit history of breeze-gtk and ported all the changes here. The script for building the theme was ported to Python3, and shell scripts now use POSIX sh instead of bash. Also I fixed some inconsistences between Qt and GTK Breeze themes. For example, Breeze-Qt colorscheme was updated a little (in Plasma 5.12, as far as I remember), but the GTK theme was updated only partially; now the colors are synchronized. Both GTK-3.18 and GTK-3.20 versions work fine for me; many things were also fixed for GTK 3.18.</p>

<p>For building the theme, ruby-sass (or more lightweght sassc) is required. Also the theme can be patched to allow changing the colorscheme in System Settings (though, rebuilding the theme with sassc is required for this). The original repository (<a href="https://github.com/dirruk1/gnome-breeze" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/dirruk1/gnome-breeze</a>) had also named-colors branch that allowed using named colors and changing the colorscheme without rebuilding; but I couldn't get this working.</p>

<p>Because both Breeze-gtk and Breese-dark-gtk are now built from sources, there will be no more inconsistences between them. Rebuilding these themes can be done using rebuild-theme.sh.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>I do not know how to test this automatically. But I am using this version of Breeze-GTK for several months (I am not using many GTK+ applications, though). Also checked it on gtk3-widget-factory; it seems to work fine.</p>

<p>GTK2 version was tested on Gimp, but it is mostly unchanged.</p>

<p>For differences between <a href="https://github.com/dirruk1/gnome-breeze" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/dirruk1/gnome-breeze</a> and this version, you can see my GitHub repo where I worked on this patch: <a href="https://github.com/alex65536/gnome-breeze/tree/breeze-gtk-merge" class="remarkup-link" target="_blank" rel="noreferrer">https://github.com/alex65536/gnome-breeze/tree/breeze-gtk-merge</a>.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R98 Breeze for Gtk</div></div></div><br /><div><strong>BRANCH</strong><div><div>breeze-gtk-sass (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D17154">https://phabricator.kde.org/D17154</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>Breeze-dark-gtk/gtk-2.0/widgets/default<br />
Breeze-dark-gtk/gtk-2.0/widgets/scrollbar<br />
Breeze-dark-gtk/gtk-3.0/gtk.css<br />
Breeze-dark-gtk/gtk-3.18/gtk.css<br />
Breeze-dark-gtk/gtk-3.20/gtk.css<br />
Breeze-gtk/assets/arrow-down-insensitive.png<br />
Breeze-gtk/assets/arrow-down.png<br />
Breeze-gtk/assets/arrow-left-insensitive.png<br />
Breeze-gtk/assets/arrow-left.png<br />
Breeze-gtk/assets/arrow-right-insensitive.png<br />
Breeze-gtk/assets/arrow-right.png<br />
Breeze-gtk/assets/arrow-small-down-insensitive.png<br />
Breeze-gtk/assets/arrow-small-down.png<br />
Breeze-gtk/assets/arrow-small-left-insensitive.png<br />
Breeze-gtk/assets/arrow-small-left.png<br />
Breeze-gtk/assets/arrow-small-right-insensitive.png<br />
Breeze-gtk/assets/arrow-small-right.png<br />
Breeze-gtk/assets/arrow-small-up-insensitive.png<br />
Breeze-gtk/assets/arrow-small-up.png<br />
Breeze-gtk/assets/arrow-up-insensitive.png<br />
Breeze-gtk/assets/arrow-up.png<br />
Breeze-gtk/assets/button-insensitive.png<br />
Breeze-gtk/assets/button.png<br />
Breeze-gtk/assets/check-checked-backdrop-insensitive.png<br />
Breeze-gtk/assets/check-checked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/check-checked-backdrop.png<br />
Breeze-gtk/assets/check-checked-backdrop@2.png<br />
Breeze-gtk/assets/check-checked-insensitive.png<br />
Breeze-gtk/assets/check-checked-insensitive@2.png<br />
Breeze-gtk/assets/check-mixed-backdrop-insensitive.png<br />
Breeze-gtk/assets/check-mixed-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/check-mixed-backdrop.png<br />
Breeze-gtk/assets/check-mixed-backdrop@2.png<br />
Breeze-gtk/assets/check-mixed-insensitive.png<br />
Breeze-gtk/assets/check-mixed-insensitive@2.png<br />
Breeze-gtk/assets/check-selectionmode-checked-backdrop-insensitive.png<br />
Breeze-gtk/assets/check-selectionmode-checked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/check-selectionmode-checked-backdrop.png<br />
Breeze-gtk/assets/check-selectionmode-checked-backdrop@2.png<br />
Breeze-gtk/assets/check-selectionmode-checked-insensitive.png<br />
Breeze-gtk/assets/check-selectionmode-checked-insensitive@2.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-backdrop-insensitive.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-backdrop.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-backdrop@2.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-insensitive.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked-insensitive@2.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked.png<br />
Breeze-gtk/assets/check-selectionmode-unchecked@2.png<br />
Breeze-gtk/assets/check-unchecked-backdrop-insensitive.png<br />
Breeze-gtk/assets/check-unchecked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/check-unchecked-backdrop.png<br />
Breeze-gtk/assets/check-unchecked-backdrop@2.png<br />
Breeze-gtk/assets/check-unchecked-insensitive.png<br />
Breeze-gtk/assets/check-unchecked-insensitive@2.png<br />
Breeze-gtk/assets/check-unchecked.png<br />
Breeze-gtk/assets/check-unchecked@2.png<br />
Breeze-gtk/assets/combo-entry-button-insensitive.png<br />
Breeze-gtk/assets/combo-entry-button.png<br />
Breeze-gtk/assets/combo-entry-insensitive.png<br />
Breeze-gtk/assets/combo-entry.png<br />
Breeze-gtk/assets/entry-insensitive.png<br />
Breeze-gtk/assets/entry.png<br />
Breeze-gtk/assets/frame-gap-end.png<br />
Breeze-gtk/assets/frame-gap-start.png<br />
Breeze-gtk/assets/frame.png<br />
Breeze-gtk/assets/line-h.png<br />
Breeze-gtk/assets/line-v.png<br />
Breeze-gtk/assets/menu-arrow-insensitive.png<br />
Breeze-gtk/assets/menu-arrow-selected.png<br />
Breeze-gtk/assets/menu-arrow.png<br />
Breeze-gtk/assets/notebook-frame-bottom.png<br />
Breeze-gtk/assets/notebook-frame-right.png<br />
Breeze-gtk/assets/notebook-frame-top.png<br />
Breeze-gtk/assets/progressbar-trough.png<br />
Breeze-gtk/assets/radio-checked-backdrop-insensitive.png<br />
Breeze-gtk/assets/radio-checked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/radio-checked-backdrop.png<br />
Breeze-gtk/assets/radio-checked-backdrop@2.png<br />
Breeze-gtk/assets/radio-checked-insensitive.png<br />
Breeze-gtk/assets/radio-checked-insensitive@2.png<br />
Breeze-gtk/assets/radio-mixed-backdrop-insensitive.png<br />
Breeze-gtk/assets/radio-mixed-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/radio-mixed-backdrop.png<br />
Breeze-gtk/assets/radio-mixed-backdrop@2.png<br />
Breeze-gtk/assets/radio-mixed-insensitive.png<br />
Breeze-gtk/assets/radio-mixed-insensitive@2.png<br />
Breeze-gtk/assets/radio-unchecked-backdrop-insensitive.png<br />
Breeze-gtk/assets/radio-unchecked-backdrop-insensitive@2.png<br />
Breeze-gtk/assets/radio-unchecked-backdrop.png<br />
Breeze-gtk/assets/radio-unchecked-backdrop@2.png<br />
Breeze-gtk/assets/radio-unchecked-insensitive.png<br />
Breeze-gtk/assets/radio-unchecked-insensitive@2.png<br />
Breeze-gtk/assets/radio-unchecked.png<br />
Breeze-gtk/assets/radio-unchecked@2.png<br />
Breeze-gtk/assets/scale-slider-insensitive.png<br />
Breeze-gtk/assets/scale-slider.png<br />
Breeze-gtk/assets/scale-trough-horizontal.png<br />
Breeze-gtk/assets/scale-trough-vertical.png<br />
Breeze-gtk/assets/scrollbar-trough-horizontal.png<br />
Breeze-gtk/assets/scrollbar-trough-horizontal@2.png<br />
Breeze-gtk/assets/scrollbar-trough-vertical.png<br />
Breeze-gtk/assets/scrollbar-trough-vertical@2.png<br />
Breeze-gtk/assets/spinbutton-down-insensitive.png<br />
Breeze-gtk/assets/spinbutton-down-rtl-insensitive.png<br />
Breeze-gtk/assets/spinbutton-down-rtl.png<br />
Breeze-gtk/assets/spinbutton-down.png<br />
Breeze-gtk/assets/spinbutton-up-insensitive.png<br />
Breeze-gtk/assets/spinbutton-up-rtl-insensitive.png<br />
Breeze-gtk/assets/spinbutton-up-rtl.png<br />
Breeze-gtk/assets/spinbutton-up.png<br />
Breeze-gtk/assets/tab-bottom-active.png<br />
Breeze-gtk/assets/tab-bottom-inactive.png<br />
Breeze-gtk/assets/tab-left-active.png<br />
Breeze-gtk/assets/tab-left-inactive.png<br />
Breeze-gtk/assets/tab-right-active.png<br />
Breeze-gtk/assets/tab-right-inactive.png<br />
Breeze-gtk/assets/tab-top-active.png<br />
Breeze-gtk/assets/tab-top-inactive.png<br />
Breeze-gtk/assets/titlebutton-close-backdrop.png<br />
Breeze-gtk/assets/titlebutton-close-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-close.png<br />
Breeze-gtk/assets/titlebutton-close@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-active-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-active-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-active.png<br />
Breeze-gtk/assets/titlebutton-maximize-active@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-hover-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-hover-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-hover.png<br />
Breeze-gtk/assets/titlebutton-maximize-hover@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-active-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-active-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-active.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-active@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-hover-backdrop.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-hover-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-hover.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized-hover@2.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized.png<br />
Breeze-gtk/assets/titlebutton-maximize-maximized@2.png<br />
Breeze-gtk/assets/titlebutton-maximize.png<br />
Breeze-gtk/assets/titlebutton-maximize@2.png<br />
Breeze-gtk/assets/titlebutton-minimize-active-backdrop.png<br />
Breeze-gtk/assets/titlebutton-minimize-active-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-minimize-active.png<br />
Breeze-gtk/assets/titlebutton-minimize-active@2.png<br />
Breeze-gtk/assets/titlebutton-minimize-backdrop.png<br />
Breeze-gtk/assets/titlebutton-minimize-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-minimize-hover-backdrop.png<br />
Breeze-gtk/assets/titlebutton-minimize-hover-backdrop@2.png<br />
Breeze-gtk/assets/titlebutton-minimize-hover.png<br />
Breeze-gtk/assets/titlebutton-minimize-hover@2.png<br />
Breeze-gtk/assets/titlebutton-minimize.png<br />
Breeze-gtk/assets/titlebutton-minimize@2.png<br />
Breeze-gtk/assets/togglebutton-insensitive.png<br />
Breeze-gtk/assets/togglebutton.png<br />
Breeze-gtk/assets/toolbutton-toggled.png<br />
Breeze-gtk/assets/tree-header.png<br />
Breeze-gtk/gtk-2.0/gtkrc<br />
Breeze-gtk/gtk-2.0/widgets/default<br />
Breeze-gtk/gtk-3.0/gtk.css<br />
Breeze-gtk/gtk-3.18/gtk-dark.css<br />
Breeze-gtk/gtk-3.18/gtk.css<br />
Breeze-gtk/gtk-3.20/common.css<br />
Breeze-gtk/gtk-3.20/gtk-dark.css<br />
Breeze-gtk/gtk-3.20/gtk.css<br />
TODO<br />
generate_theme.py<br />
rebuild-theme.sh<br />
src/_colors.scss<br />
src/_functions.scss<br />
src/_global.scss<br />
src/build_theme.sh<br />
src/gtk2/gtkrc<br />
src/gtk2/widgets/buttons<br />
src/gtk2/widgets/default<br />
src/gtk2/widgets/entry<br />
src/gtk2/widgets/menu<br />
src/gtk2/widgets/misc<br />
src/gtk2/widgets/notebook<br />
src/gtk2/widgets/progressbar<br />
src/gtk2/widgets/range<br />
src/gtk2/widgets/scrollbar<br />
src/gtk2/widgets/styles<br />
src/gtk2/widgets/toolbar<br />
src/gtk318/gtk.scss<br />
src/gtk318/widgets/_app_notifications.scss<br />
src/gtk318/widgets/_base.scss<br />
src/gtk318/widgets/_button.scss<br />
src/gtk318/widgets/_calendar.scss<br />
src/gtk318/widgets/_checkboxes.scss<br />
src/gtk318/widgets/_color_chooser.scss<br />
src/gtk318/widgets/_dialogs.scss<br />
src/gtk318/widgets/_entry.scss<br />
src/gtk318/widgets/_headerbar.scss<br />
src/gtk318/widgets/_infobar.scss<br />
src/gtk318/widgets/_link.scss<br />
src/gtk318/widgets/_lists.scss<br />
src/gtk318/widgets/_menus.scss<br />
src/gtk318/widgets/_misc.scss<br />
src/gtk318/widgets/_notebook.scss<br />
src/gtk318/widgets/_overshoot.scss<br />
src/gtk318/widgets/_pathbar.scss<br />
src/gtk318/widgets/_progressbar.scss<br />
src/gtk318/widgets/_scale.scss<br />
src/gtk318/widgets/_scrollbar.scss<br />
src/gtk318/widgets/_sidebar.scss<br />
src/gtk318/widgets/_spinbutton.scss<br />
src/gtk318/widgets/_switch.scss<br />
src/gtk318/widgets/_toolbar.scss<br />
src/gtk318/widgets/_tooltips.scss<br />
src/gtk318/widgets/_treeview.scss<br />
src/gtk318/widgets/_window_decorations.scss<br />
src/gtk320/gtk.scss<br />
src/gtk320/widgets/_app_notifications.scss<br />
src/gtk320/widgets/_base.scss<br />
src/gtk320/widgets/_button.scss<br />
src/gtk320/widgets/_calendar.scss<br />
src/gtk320/widgets/_checkboxes.scss<br />
src/gtk320/widgets/_color_chooser.scss<br />
src/gtk320/widgets/_dialogs.scss<br />
src/gtk320/widgets/_entry.scss<br />
src/gtk320/widgets/_headerbar.scss<br />
src/gtk320/widgets/_infobar.scss<br />
src/gtk320/widgets/_link.scss<br />
src/gtk320/widgets/_lists.scss<br />
src/gtk320/widgets/_menus.scss<br />
src/gtk320/widgets/_misc.scss<br />
src/gtk320/widgets/_notebook.scss<br />
src/gtk320/widgets/_overshoot.scss<br />
src/gtk320/widgets/_pathbar.scss<br />
src/gtk320/widgets/_progressbar.scss<br />
src/gtk320/widgets/_scale.scss<br />
src/gtk320/widgets/_scrollbar.scss<br />
src/gtk320/widgets/_sidebar.scss<br />
src/gtk320/widgets/_spinbutton.scss<br />
src/gtk320/widgets/_switch.scss<br />
src/gtk320/widgets/_toolbar.scss<br />
src/gtk320/widgets/_tooltips.scss<br />
src/gtk320/widgets/_treeview.scss<br />
src/gtk320/widgets/_window_decorations.scss<br />
src/render_assets.py</div></div></div><br /><div><strong>To: </strong>gepardo<br /><strong>Cc: </strong>plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart<br /></div>