%global kf6_version 6.22.0 %define qt6_version 6.10.1 %define kf5_version 5.116.0 %define qt5_version 5.15.18 # Full Plasma 6 version (e.g. 6.0.0) %{!?_plasma6_bugfix: %define _plasma6_bugfix 6.3.0} # Latest ABI-stable Plasma (e.g. 6.0 in KF6, but 6.0.80 in KUF) %{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk -F. '{print $1"."$2}')} Name: evernight-vista-appearance Version: 43.1 Release: 3%{?dist} Summary: Highly customizable theming for the KDE Plasma desktop License: GPL-2.0-or-later Group: System/GUI/KDE Url: https://github.com/paulmcauley/klassy Source: %{name}-%{version}.tar.gz Conflicts: klassy Provides: klassy Obsoletes: march7th-vista-appearance Obsoletes: evernight-os-appearance BuildRequires: cmake >= 3.16 BuildRequires: fdupes BuildRequires: gettext BuildRequires: extra-cmake-modules >= %{kf6_version} BuildRequires: kf5-rpm-macros BuildRequires: kf6-rpm-macros BuildRequires: llvm BuildRequires: clang #klassy5 dependencies BuildRequires: cmake(KF5Config) >= %{kf5_version} BuildRequires: cmake(KF5ConfigWidgets) >= %{kf5_version} BuildRequires: cmake(KF5CoreAddons) >= %{kf5_version} BuildRequires: cmake(KF5FrameworkIntegration) >= %{kf5_version} BuildRequires: cmake(KF5GuiAddons) >= %{kf5_version} BuildRequires: cmake(KF5I18n) >= %{kf5_version} BuildRequires: cmake(KF5IconThemes) >= %{kf5_version} BuildRequires: cmake(KF5Kirigami2) >= %{kf5_version} BuildRequires: cmake(KF5WindowSystem) >= %{kf5_version} BuildRequires: cmake(Qt5DBus) >= %{qt5_version} BuildRequires: cmake(Qt5Quick) >= %{qt5_version} BuildRequires: cmake(Qt5Widgets) >= %{qt5_version} BuildRequires: cmake(Qt5X11Extras) >= %{qt5_version} BuildRequires: cmake(KDecoration3) >= %{_plasma6_bugfix} BuildRequires: cmake(KF6ColorScheme) >= %{kf6_version} BuildRequires: cmake(KF6Config) >= %{kf6_version} BuildRequires: cmake(KF6CoreAddons) >= %{kf6_version} BuildRequires: cmake(KF6FrameworkIntegration) >= %{kf6_version} BuildRequires: cmake(KF6GuiAddons) >= %{kf6_version} BuildRequires: cmake(KF6I18n) >= %{kf6_version} BuildRequires: cmake(KF6IconThemes) >= %{kf6_version} BuildRequires: cmake(KF6KCMUtils) >= %{kf6_version} BuildRequires: cmake(KF6KirigamiPlatform) >= %{kf6_version} BuildRequires: cmake(KF6WindowSystem) >= %{kf6_version} BuildRequires: cmake(Qt6Core) >= %{qt6_version} BuildRequires: cmake(Qt6DBus) >= %{qt6_version} BuildRequires: cmake(Qt6Quick) >= %{qt6_version} BuildRequires: cmake(Qt6Svg) >= %{qt6_version} BuildRequires: cmake(Qt6Widgets) >= %{qt6_version} BuildRequires: cmake(Qt6Xml) >= %{qt6_version} %description Highly customizable theming for the KDE Plasma desktop. Install, and enable in System Settings -> Appearance -> Global Themes (or individually in Window Decorations, Application Style and Icons). %prep %autosetup -n %{name}-%{version} -p1 %build export LLVM=1 export CC=clang export CXX=clang++ export LD=ld.lld %cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DKDE_INSTALL_USE_QT_SYS_PATHS=ON %cmake_build %install %cmake_install %fdupes %{buildroot}/%{_prefix} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %license LICENSES/*.txt %{_libdir}/libklassycommon5.so.* %{_libdir}/libklassycommon6.so.* %{_datadir}/applications/klassystyleconfig.desktop %{_datadir}/applications/kcm_klassydecoration.desktop %dir %{_kf6_qtplugindir} %dir %{_kf6_qtplugindir}/org.kde.kdecoration3.kcm %{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/kcm_klassydecoration.so %dir %{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/klassydecoration %{_kf6_qtplugindir}/org.kde.kdecoration3.kcm/klassydecoration/presets %dir %{_kf6_qtplugindir}/org.kde.kdecoration3/ %{_kf6_qtplugindir}/org.kde.kdecoration3/org.kde.klassy.so %dir %{_kf6_qtplugindir}/kstyle_config %{_kf6_qtplugindir}/kstyle_config/klassystyleconfig.so %dir %{_kf5_qtplugindir}/styles %{_kf5_qtplugindir}/styles/klassy5.so %dir %{_kf6_qtplugindir}/styles %{_kf6_qtplugindir}/styles/klassy6.so %dir %{_datadir}/kstyle %dir %{_datadir}/kstyle/themes %{_datadir}/kstyle/themes/klassy.themerc %{_bindir}/klassy-settings %{_datadir}/applications/klassy-settings.desktop %{_libdir}/cmake/Klassy/ %changelog * Wed Jun 18 2025 Paul A McAuley - 6.4.breeze6.4.0 - "Kisweet" now the default theme: - Use nextState for borders when not directly using value for painting. Fixes some glitches when changing titlebar size. - Do not use KConfigWatcher for colour scheme - fixes a crash that would occur on login if "Accent colour from wallpaper" is used * Tue May 6 2025 Paul A McAuley - 6.3.breeze6.3.5 - Ported to KDecoration3. Plasma 6.3+ now required - New default "Opal" theme, designed to be subtly more colourful and to show a clear difference between active and inactive windows - Eliminated most fractional scaling glitches - New "Kisweet" icon set - Generated "klassy" system icons now show more colours. - Presets now save window control button positions - Fix Window Outline not being displayed properly when set to None - Refactor and simplification of kstyle so that all colourscheme changes will reliably be reacted to - Changes from Breeze up to 6.3.5 (except for the new ugly immutable tabs) * Sat Oct 19 2024 Paul A McAuley - 6.2.breeze6.2.1 - Plasma 6.1+ now required due to API change for window decoration spacer buttons - Add configuration of spacer button width and touch mode scaling - Fix titlebar height not always being calculated properly - Fix transparent state-change animation glitch in twilight theme - Window corner radius is now in units of pixels @100%% scaling - User-adjustable Application Style corner radii - Allow scrollbar separator line to be hidden, hidden by default - Use dark icons with dark desktop themes - Do not generate help-contextual-symbolic icon any more - All relevant fixes from Breeze up to Plasma 6.2.1 * Thu Apr 11 2024 Paul A McAuley - 6.1.breeze6.0.3 - Enhanced auto-hide arrow scrollbar behaviour. Scrollbars with auto-hide arrows enabled now also hide the arrow when mouse is over and the the slider is at the extremity. The slider may also be mouse-dragged when the slider is at this extremity position. - Add a Plasma style so that vertical panels are more compact - Traditional icon style - Tweak icon opacities - Tweak twilight titlebar opacity - Plastik preset - Fix clang compilation - Draw tools area separator in whole pixels - Fixes from Breeze 6.0.3 * Thu Apr 11 2024 Paul A McAuley - 5.2.breeze5.27.11 - Enhanced auto-hide arrow scrollbar behaviour. Scrollbars with auto-hide arrows enabled now also hide the arrow when mouse is over and the the slider is at the extremity. The slider may also be mouse-dragged when the slider is at this extremity position. - Add a Plasma style so that vertical panels are more compact - Traditional icon style - Tweak icon opacities - Tweak twilight titlebar opacity - Plastik preset - Fix clang compilation * Thu Mar 14 2024 Paul A McAuley - 6.0.breeze6.0.2 - Major release for Plasma 6.0! - Includes all features in Klassy 5.1 ported to Qt6, KF6 and C++20 - Include all bugfixes from Breeze 6 - Most "frameless" Application Style changes merged from Breeze6, with the exception of changes to the scrollbars - Fewer graphical glitches on Wayland - Improved library structure for better efficiency - Support for translucent header areas in dialogs - Fix tools area separator positioning cf Breeze - Fix for bug in Breeze where application palette does not reload - Disable extended resize handles by default as they interfere with the scrollbars in the new frameless application style - No longer auto-switch to Adwaita GTK style as Breeze GTK works better in Plasma 6 * Thu Mar 14 2024 Paul A McAuley - 5.1.breeze5.27.11 - Improve performance of rendering system icons - Tweaks to vertical icon offset with integrated button shapes - Adjust opacities in Breeze Original and Windows 10 presets * Mon Mar 11 2024 Paul A McAuley - 5.0.breeze5.27.11 - New Presets feature allowing simplified customization: - Extensive new button colour customization options. - Advanced button behaviour settings for different button states. - Tweaks to icon snapping algorithms for even sharper and more accurate icon rendering in more circumstances. - "Klassy" and "Klassy dark" icon themes are now auto-generated at all major scale factors on a setting change. There is now no-need to separately install a Klassy icon theme, and the inheritance properties of the icon theme can be set under the "System Icon Generation..." button. - New Global Themes and colour schemes as an attempt to provide sane KDE defaults. - Superior colouring of system icons when "use system icon theme" is used - KDE SVG CSS colour properties used, with a new "force colourize" option for non-KDE icons using a superior alpha-replacement colourization algorithm. - Superior multi-monitor rendering of system icons when "use system icon theme" is set. - New "Redmond 11" built-in icons. - New "Integrated Rounded Rectangle, grouped" button shape. - Ability to customize close button width specifically, and ability to set corner radius specifically for a button. - New active state change animation for buttons. - Window decoration and button colours are now all cached. Colours for complex button state options now share a common code-path between Window Decoration and Application Style. - Buttons now only repaint if they have an intersecting paint region - New command line options for klassy-settings to load/import presets and generate icons. See klassy-settings --help - Allow titlebar opacity to be overridden when set in colourscheme - Switching the application palette between a colourscheme with header colours and one without now works (bug from Breeze) - All relevant updates from Breeze up to Plasma 5.27.11 - NB: the config file has moved from ~/.config/klassyrc to a new one at ~/.config/klassy/klassyrc. Your old config file may still be present but many config keys differ between version 4 and version 5. * Sat May 20 2023 Paul A McAuley - 4.3.breeze5.27.5 -Updates from upstream Breeze up to Plasma 5.27.5 -Window class matching on Wayland for exceptions, and exception code overhaul. Kdenlive removed from default transparency exceptions, VirtualBox and DigiKam added. -JSON desktop files, and decoration config now in a separate static library. -Fix sharpness of corners when 0 corner radius. -Fix program icon sizes for sharpness. -Allow configuration of Window Outline transparencies. -Tweak shadow caching mechanism so cache used more often -Fix titlebar background colour animation -Fix titlebar separator display -Fix blurRegion shape when no borders -"Round bottom corners when no borders" experimental option for use with LightlyShaders etc.: * Mon May 8 2023 Paul A McAuley - 4.2.breeze5.26 -Updates with changes from Breeze matching Plasma 5.26. -Defaults back to no borders and more square corner radius. * Sat May 6 2023 Paul A McAuley - 4.1.breeze5.25.80 -Workaround to EGL_BAD_SURFACE segfaults that were introduced with changes in KDE Plasma 5.26 * Tue Aug 9 2022 Paul A McAuley - 4.0.breeze5.25.80 Main Changes: -Rebrand from ClassiK to Klassy -Superior pixel alignment of included icons at all sizes, using new pixel-snapping algorithms. -No kornerbug as implemented the setBlurRegion() API (now requires Plasma 5.25) -New "integrated" button shape with option to highlight the window outline with the button outline colour -Translucent headers -Ability to load system icons, and optionally colourize them. This uses the window-*-symbolic icons. -Ability to set exceptions for opacity, and have default exceptions. -Configurable button size -Independent full-height and non-full height button-spacing -Configurable title padding -Independently configurable left/right and top/bottom margins -Ability to set window outline size, add a custom outline colour, and have an outline when shadows are disabled. -Fix scaling of titlebar separator -Scrollbar slider minimum height configurable and larger by default -New distinct "Redmond" and "Redmond 10" icons -Updated pixel-aligned matching icon themes downloadable from "Get new Icons..." in KDE Plasma system settings. - Only process decoration colours once -All relevant changes from KDE Breeze master up to 5.25.80 * Fri Dec 10 2021 Paul A McAuley - 3.0.breeze5.23.80 New Features: - Rebrand from ClassikStyles to ClassiK - New default button style designed to complement "Blue Ocean" 5.23 design with outlined translucent rounded rectangles and accent colours - New "Contrast blended with accent colour" thin window outline (default) and more stark "accent colour" thin window outline - Configurable scrollbars with top/bottom padding, spacing between arrow and groove, slider width (on mouse over and not on mouse over), slider padding - Chunky scrollbar only appears on mouseover - Larger icon sizes are now rendered sharper - Enhanced colour pre-processing - New "traffic lights" colour option - What was "Square" button shape is now called "Full-height Rectangle" and now allows both width and spacing to be set - Configurable animations; animations re-enabled and Breeze animation sync issue between decoration and client mostly fixed - Tweak Classik/Kite fine icon opacities - Titlebars with alpha set in system colour scheme now are considered for transparency, with the slider multiplying the existing alpha value - kde-gtk-config and standalone buttons now render as small rounded rectangles - Better support for large borders, with side margins now relative to border edge rather than titlebar edge - Titlebar separator now only appears for non-maximized windows and adjusts depending upon border type - Always shown close buttons now support accent colours - Remove limitation from Breeze whereby header is not drawn with borders - Rearranged config UIs - Compilation improvements Bug fixes: - Partial Kornerbug #395725 workaround - bug now only occurs when titlebar transparency and blur are explicitly set - Scrollbar auto-hide arrows and Kate scrollbar minimap no longer interfere with each other - Standalone buttons are now rendered correctly (e.g. for applet-window-buttons) - Config UIs now all use a dynamic layout - When titlebar is hidden, borders can inherit titlebar colour - Fix resizing from top of window when "Allow resizing maximized windows from window edges" is set - Partially fix scaling of thin window outline - Fix many deprecation warnings - Fix regression from Breeze where there was no hover on dock buttons - All relevant fixes from the latest Breeze 5.23.80 master * Thu Jul 15 2021 Paul McAuley - 2.6.breeze5.22.80 - Fix scrollbar animation glitch - Use shared pointers instead of raw pointers for clipping window geometry Updates from Breeze master with all Plasma 5.22 features and preview of Plasma 5.23 features: - New QWindow-based Effects API now requires KDE Frameworks >= 5.82 - Focus indicator for tabs is no longer duplicated - Fix resize splitter cursor glitch - Blue Ocean application style preview for Plasma 5.23 * Sat May 15 2021 Paul McAuley - 2.5.breeze5.21.80 - Don't draw contrasting window outline differently on Wayland - When contrasting window outline is disabled, use legacy Breeze geometry to prevent blurriness - Enlarged contrasting window outline geometry does not need adjusted corner radii * Mon May 10 2021 Paul McAuley - 2.4.breeze5.21.80 Bug fixes: - 1px outline in shadow now appears when borders are enabled - Fixed shadow updating too often due to fontColor() changes - Rename outline close button option to "Permanently highlight close button" - Make consistent scrollbar edge case by also extending the size of the scrollbar groove - Only enable auto-hiding scrollbar arrows when animations enabled New Features: - "Draw thin contrasting window outline" toggle now available in Shadows section of window decoration configuration * Sun May 2 2021 Paul McAuley - 2.3.breeze5.21.80 Bug fixes: - Window border in shadow now 1px on X11 to prevent blurriness at 100%% scaling - Consider both top and bottom scrollbar arrow types when determining scrollbar groove geometry * Sat May 1 2021 Paul McAuley - 2.2.breeze5.21.80 Bug fixes: - Corner radius setting now updates instantaneously - Auto-boldness now instantaneously adjusts per-display on Wayland - Improve robustness of GTK button generation - Window outline in shadow now has correct window shape when bottom corners of window are not rounded New features: - Subtle 1px outline of window in font colour to improve contrast and add polish - Gapless auto-hiding scrollbar arrows -- see video at http://paulmcauley.com/kde/classikstyles/gapless_autohiding_scroll_arrows.mp4 - KCM option in Application Style whether to auto-hide scrollbar arrows * Sun Apr 11 2021 Paul McAuley - 2.1.breeze5.21.80 - Corner clipping of background highlight now clips all buttons with titlebar to cover some edge cases - Fix for kde-gtk-config not rendering GTK CSD buttons when corners clipped - With Boldness set to Auto, kde-gtk-config's GTK CSD buttons and the Window Decoration preview are now consistent with the system (new global method of getting system scaling used) - Remove minor rendering artefacts in restore/maximize/minimize, improve question mark - Matching system icon themes now available (inherit Breeze icons) - Reduce size of button background highlight in Application Style, matching system icon theme - Latest updates from KDE Breeze master * Wed Mar 31 2021 Paul McAuley - 2.0.breeze5.21.80 - New square button highlight style -- this has a larger clickable area and is now the default; - New hover and focus colour inheritance option for both Window Decoration and Application Style; Auto contrast enhancement; - Implemented configurable titlebar side and top/bottom margins; margins scale with DPI; - Option for different margins in a maximized window; - Implemented DPI-scaling corner radius setting; - Option to colour borders the same as titlebar; - Implemented transparency option for active/inactive windows, along with ability to have opaque maximized windows; blur is now enabled; - Bold icons are now automatically disabled for 96 DPI screens to prevent blurring; - Some refactoring and further separation from Breeze * Sun Mar 14 2021 Paul McAuley - 1.0.breeze5.21.80 - Initial release with selectable styles of Classik, Kite, Oxygen/Breeze, and Redmond; - Provides both a Window Decoration and an Application Style so that icons in dockable panels match the titlebar icons; - Configurable button spacing (left and right); - Configurable whether to draw bold button icons for HiDPI displays.