%define debug_package %{nil} # Build a git snapshot %global willow_commit bbe8db547b76012a64dbdff730256cf7517b541d %global git %(i=%{willow_commit}; echo ${i:0:7}) %global fluent_url https://github.com/vinceliuice/Fluent-icon-theme %global fluent_commit 812752d0839a84cd86b5754cc6363948b4b3bdb1 %global fluent_git %(i=%{fluent_commit}; echo ${i:0:7}) %global srcname willow-theme %global license GPLv3 Name: willow Version: 0.1 Release: 6%{?git:.git%{git}}%{?dist} Summary: A Windows 11 like style for KDE Plasma License: %{license} URL: https://github.com/doncsugar/willow-theme %if 0%{?git:1} > 0 Source0: %{url}/archive/%{willow_commit}.tar.gz#/%{srcname}-git%{git}.tar.gz %else Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz %endif Source1: willow-spectrum-plasma.tar.xz Source100: %{fluent_url}/archive/%{fluent_commit}.tar.gz#/fluent-icon-theme-master+git%{fluent_git}.tar.gz Patch0: willow-0.1+git~bbe8db5-ekaaty.patch BuildArch: noarch BuildRequires: GraphicsMagick BuildRequires: python2 BuildRequires: unzip Requires: Plasma(LookandFeel-WillowSpectrum) = %{version}-%{release} %description Willow Desktop is a set of different Plasma related projects aimmed to that aims to mimic the Windows 11 desktop style. %prep %if 0%{?git:1} > 0 %setup -q -n %{srcname}-%{willow_commit} -a 1 %else %setup -q -n %{srcname}-%{version} -a 1 %endif %patch 0 -p1 %{__rm} -rf global-themes/org.kde.willow-light.desktop %{__rm} -rf plasma-style/Willow{Dark,Light}* %{__rm} -rf willowLight.jpg pushd willow-icons %{__tar} --transform="s/-%{fluent_commit}//g" -xf %{SOURCE100} touch icon-pipeline/devices/media-flash-memory-stick/links %{__cp} willow-extras/actions-ALTs/document-editNEW.svg \ Fluent-icon-theme/src/22/actions/document-edit.svg %{__cp} willow-extras/22-optional-thin-arrows/* \ Fluent-icon-theme/src/22/actions/ popd %build # -- Generate Aurorae themes --------------------------------------------------- pushd aurorae-themes chmod +x genThemes.sh && ./genThemes.sh 2> build-errors.log || exit $? popd # -- Generate Plasma styles ---------------------------------------------------- pushd plasma-style ./genThemes.sh 2> build-errors.log || exit $? popd # -- Generate wallpapers (TODO: multiple sizes) -------------------------------- %define __convert /usr/bin/gm convert %define wallsize 1920x1080 %define thumbsize 440x248 %{__mkdir_p} wallpapers/Willow/contents/{images,images_dark} # Light %{__convert} -resize %{wallsize} images/wallpapersV1/willowLight.png \ wallpapers/Willow/contents/images/%{wallsize}.png || exit $? # Dark %{__convert} -resize %{wallsize} images/wallpapersV1/willowDark.png \ wallpapers/Willow/contents/images_dark/%{wallsize}.png || exit $? # Screenshot %{__convert} -resize %{thumbsize} images/wallpapersV1/willowLight.png \ wallpapers/Willow/contents/screenshot.jpg || exit $? # Metadata %{__cp} willow-wallpaper-metadata.json wallpapers/Willow/metadata.json # Keep only merged variant %{__rm} -rf wallpapers/WillowDark wallpapers/WillowLight # -- SDDM themes --------------------------------------------------------------- pushd sddm-themes for variant in dark:Dark light:Light; do %{__mv} willow-${variant/:*} Willow${variant/*:} done popd # -- Generate icons themes ---------------------------------------------------- pushd willow-icons ./willow.sh 2> build-errors.log || exit $? # Keep only Spectrum variant %{__rm} -rf willowDark WillowLight popd %install %{__mkdir_p} %{buildroot}%{_datadir}/plasma/desktoptheme %{__mkdir_p} %{buildroot}%{_datadir}/color-schemes %{__mkdir_p} %{buildroot}%{_datadir}/aurorae/themes %{__mkdir_p} %{buildroot}%{_datadir}/icons %{__mkdir_p} %{buildroot}%{_datadir}/sddm/themes %{__mkdir_p} %{buildroot}%{_datadir}/plasma/look-and-feel %{__mkdir_p} %{buildroot}%{_datadir}/wallpapers %{__cp} -a plasma-style/output/Willow* %{buildroot}%{_datadir}/plasma/desktoptheme/ %{__cp} -a color-schemes/Willow*.colors %{buildroot}%{_datadir}/color-schemes/ %{__cp} -a aurorae-themes/output/Willow* %{buildroot}%{_datadir}/aurorae/themes/ %{__cp} -a willow-icons/Willow* %{buildroot}%{_datadir}/icons/ %{__cp} -a sddm-themes/Willow* %{buildroot}%{_datadir}/sddm/themes/ %{__cp} -a global-themes/* %{buildroot}%{_datadir}/plasma/look-and-feel/ %{__cp} -a wallpapers/Willow* %{buildroot}%{_datadir}/wallpapers/ find %{buildroot}%{_datadir}/icons/ -xtype l | tee broken_symlinks %{__cat} broken_symlinks | xargs %{__rm} -f %files %license LICENSE %doc README.md images/thickvsthin.png ### Desktop Themes (aka Plasma Themes) ######################################### %package plasma-desktoptheme Summary: Willow Spectrum (adaptative) theme for KDE Plasma Provides: Plasma(DesktopTheme-WillowSpectrum) Requires: Plasma(IconTheme-WillowSpectrum) Obsoletes: %{name}-plasma-desktoptheme-dark < %{version}-%{release} Obsoletes: %{name}-plasma-desktoptheme-light < %{version}-%{release} Obsoletes: %{name}-plasma-desktoptheme-spectrum < %{version}-%{release} # Upgrade path - remove on next versions Provides: Plasma(DesktopTheme-WillowDark) Provides: Plasma(DesktopTheme-WillowLight) %description plasma-desktoptheme %{summary}. %files plasma-desktoptheme %{_datadir}/plasma/desktoptheme/WillowSpectrum/ ### Color Schemes ############################################################## %package color-schemes-opaque Summary: Willow (Opaque variant) color schemes for KDE Plasma Provides: Plasma(ColorScheme-WillowDark) Provides: Plasma(ColorScheme-WillowLight) Obsoletes: %{name}-color-schemes-dark < %{version}-%{release} Obsoletes: %{name}-color-schemes-light < %{version}-%{release} %description color-schemes-opaque %{summary}. %files color-schemes-opaque %{_datadir}/color-schemes/WillowDark.colors %{_datadir}/color-schemes/WillowLight.colors %package color-schemes-blur Summary: Willow (Blur variant) color schemes for KDE Plasma Provides: Plasma(ColorScheme-WillowDarkBlur) Provides: Plasma(ColorScheme-WillowLightBlur) Obsoletes: %{name}-color-schemes-dark-blur < %{version}-%{release} Obsoletes: %{name}-color-schemes-light-blur < %{version}-%{release} %description color-schemes-blur %{summary}. %files color-schemes-blur %{_datadir}/color-schemes/WillowDarkBlur.colors %{_datadir}/color-schemes/WillowLightBlur.colors %package color-schemes-fauxmica Summary: Willow (FauxMica variant) color schemes for KDE Plasma Provides: Plasma(ColorScheme-WillowDarkFauxMica) Provides: Plasma(ColorScheme-WillowLightFauxMica) Obsoletes: %{name}-color-schemes-dark-fauxmica < %{version}-%{release} Obsoletes: %{name}-color-schemes-light-fauxmica < %{version}-%{release} %description color-schemes-fauxmica %{summary}. %files color-schemes-fauxmica %{_datadir}/color-schemes/WillowDarkFauxMica.colors %{_datadir}/color-schemes/WillowLightFauxMica.colors %package color-schemes-glass Summary: Willow (Glass variant) color schemes for KDE Plasma Provides: Plasma(ColorScheme-WillowDarkGlass) Provides: Plasma(ColorScheme-WillowLightGlass) Obsoletes: %{name}-color-schemes-dark-glass < %{version}-%{release} Obsoletes: %{name}-color-schemes-light-glass < %{version}-%{release} %description color-schemes-glass %{summary}. %files color-schemes-glass %{_datadir}/color-schemes/WillowDarkGlass.colors %{_datadir}/color-schemes/WillowLightGlass.colors ### Window Decorations ######################################################### %package aurorae-theme Summary: Willow window decorations for Aurorae License: %license BuildArch: noarch Provides: Plasma(WindowDecoration-Dark) Provides: Plasma(WindowDecoration-DarkAlt) Provides: Plasma(WindowDecoration-Light) Provides: Plasma(WindowDecoration-LightAlt) Provides: Plasma(WindowDecoration-Lightly) Obsoletes: %{name}-aurorae-theme-dark < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-dark-alt < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light-alt < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-lightly < %{version}-%{release} %description aurorae-theme %{summary}. %files aurorae-theme %{_datadir}/aurorae/themes/WillowDark/ %{_datadir}/aurorae/themes/WillowDarkAlt/ %{_datadir}/aurorae/themes/WillowLight/ %{_datadir}/aurorae/themes/WillowLightAlt/ %{_datadir}/aurorae/themes/WillowLightly/ %package aurorae-theme-shader Summary: Willow (Shader variant) window decorations for Aurorae License: %license BuildArch: noarch Provides: Plasma(WindowDecoration-DarkShader) Provides: Plasma(WindowDecoration-DarkAltShader) Provides: Plasma(WindowDecoration-LightShader) Provides: Plasma(WindowDecoration-LightAltShader) Obsoletes: %{name}-aurorae-theme-dark-shader < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-dark-alt-shader < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light-shader < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light-alt-shader < %{version}-%{release} %description aurorae-theme-shader %{summary}. %files aurorae-theme-shader %{_datadir}/aurorae/themes/WillowDarkShader/ %{_datadir}/aurorae/themes/WillowDarkAltShader/ %{_datadir}/aurorae/themes/WillowLightShader/ %{_datadir}/aurorae/themes/WillowLightAltShader/ %package aurorae-theme-blur Summary: Willow (Blur variant) window decorations for Aurorae License: %license BuildArch: noarch Provides: Plasma(WindowDecoration-DarkBlur) Provides: Plasma(WindowDecoration-DarkBlurAlt) Provides: Plasma(WindowDecoration-LightBlur) Provides: Plasma(WindowDecoration-LightBlurAlt) Obsoletes: %{name}-aurorae-theme-dark-blur < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-dark-blur-alt < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light-blur < %{version}-%{release} Obsoletes: %{name}-aurorae-theme-light-blur-alt < %{version}-%{release} %description aurorae-theme-blur yy%{summary}. %files aurorae-theme-blur %{_datadir}/aurorae/themes/WillowDarkBlur/ %{_datadir}/aurorae/themes/WillowDarkBlurAlt/ %{_datadir}/aurorae/themes/WillowLightBlur/ %{_datadir}/aurorae/themes/WillowLightBlurAlt/ ### Icon Themes ################################################################ %package icon-theme Summary: Willow Spectrum (adaptative) icon theme for KDE Provides: Plasma(IconTheme-WillowSpectrum) Provides: Plasma(IconTheme-WillowSpectrumDark) Provides: Plasma(IconTheme-WillowSpectrumLight) Obsoletes: %{name}-icon-theme-dark < %{version}-%{release} Obsoletes: %{name}-icon-theme-light < %{version}-%{release} Obsoletes: %{name}-icon-theme-spectrum-dark < %{version}-%{release} Obsoletes: %{name}-icon-theme-spectrum-light < %{version}-%{release} %description icon-theme %{summary}. %files icon-theme %{_datadir}/icons/WillowSpectrum/ ### SDDM Themes ################################################################ %package sddm-theme-dark Summary: Willow dark theme for SDDM greeter Provides: Plasma(SDDMTheme-WillowDark) %description sddm-theme-dark %{summary}. %files sddm-theme-dark %{_datadir}/sddm/themes/WillowDark/ %package sddm-theme-light Summary: Willow light theme for SDDM greeter Provides: Plasma(SDDMTheme-WillowLight) %description sddm-theme-light %{summary}. %files sddm-theme-light %{_datadir}/sddm/themes/WillowLight/ ### Wallpapers ################################################################# %package wallpapers Summary: Willow backgrounds for KDE Plasma Provides: Plasma(Wallpapers-Willow) Obsoletes: %{name}-wallpapers-dark < %{version}-%{release} Obsoletes: %{name}-wallpapers-light < %{version}-%{release} %description wallpapers %{summary}. %files wallpapers %{_datadir}/wallpapers/Willow/ ### Global Themes ############################################################## %package plasma-lookandfeel Summary: Willow spectrum global theme for KDE Plasma Provides: Plasma(LookandFeel-WillowSpectrum) # GTK themes Requires: breeze-gtk # Menu Requires: plasma-onzemenu Suggests: plasma-dittomenu # Lightly components Requires: Plasma(ColorScheme-Lightly) Requires: Plasma(CursorTheme-Lightly-White) Requires: Plasma(WidgetStyle-Lightly) Requires: Plasma(WindowDecoration-Lightly) # Optional Lightly components Suggests: Plasma(CursorTheme-Lightly-Black) # Willow components Requires: Plasma(DesktopTheme-WillowSpectrum) = %{version}-%{release} Requires: Plasma(IconTheme-WillowSpectrum) = %{version}-%{release} # Optional Willow components Suggests: Plasma(ColorScheme-WillowDarkFauxMica) = %{version}-%{release} Suggests: Plasma(ColorScheme-WillowLightFauxMica) = %{version}-%{release} Suggests: Plasma(SDDMTheme-WillowDark) = %{version}-%{release} Suggests: Plasma(SDDMTheme-WillowLight) = %{version}-%{release} Suggests: Plasma(Wallpapers-Willow) = %{version}-%{release} Suggests: Plasma(WindowDecoration-Dark) = %{version}-%{release} Suggests: Plasma(WindowDecoration-Light) = %{version}-%{release} # Upgrade path - remove on next releases Provides: Plasma(LookandFeel-org.kde.willow-dark) Provides: Plasma(LookandFeel-org.kde.willow-light) Provides: Plasma(LookandFeel-org.kde.willow-spectrum) Provides: Plasma(KSplash-org.kde.willow-dark) Provides: Plasma(KSplash-org.kde.willow-light) Obsoletes: %{name}-plasma-lookandfeel-dark < %{version}-%{release} Obsoletes: %{name}-plasma-lookandfeel-light < %{version}-%{release} %description plasma-lookandfeel %{summary}. %files plasma-lookandfeel %{_datadir}/plasma/look-and-feel/org.kde.willow-spectrum.desktop/ %changelog * Sun Dec 24 2023 Christian Tosta - 0.1-6.gitbbe8db5 - Updated fluent icons - Specfile cleanup * Sun Dec 10 2023 Christian Tosta - 0.1-5.gitbbe8db5 - Cleanup: redundant plasma-styles and icons - Merge similar products into packages * Thu Aug 11 2022 Christian Tosta - 0.1-4+git~fe1af34 - Split each product into your respective package - Follow packagr-naming guidelines - Spec cleanups * Tue Aug 09 2022 Christian Tosta - 0.1-3+git~fe1af34 - Use package-independent RPM provides/requires - Do not clone git repos when building anymore - Try to make global theme usable - Moved cursors to lightly source package - Fixed previous changelog entries * Thu Jul 14 2022 Christian Tosta - 0.1-2+git~fe1af34 - Use Fluent current git - Added cursors * Thu Jul 14 2022 Christian Tosta - 0.1-1+git~fe1af34 - Initial build