%global scenefx_version 0.5 # Upstream's switch over libinput_config_scroll_method in ipc-json.c doesn't # handle LIBINPUT_CONFIG_SCROLL_CIRCULAR, added in newer libinput than sway # 1.12 knows about; meson's -Werror turns that -Wswitch into a build failure # on Fedora 45+/rawhide (whose libinput has the new value). %global optflags %{optflags} -Wno-error=switch Name: swayfx Version: 0.6 Release: 2%{?dist} Summary: Sway, with rounded corners, shadows, blur and dimming # swayfx and the bundled scenefx are both MIT License: MIT URL: https://github.com/WillPower3309/swayfx Source0: %{url}/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: https://github.com/wlrfx/scenefx/archive/refs/tags/%{scenefx_version}.tar.gz#/scenefx-%{scenefx_version}.tar.gz %if 0%{?fedora} && 0%{?fedora} < 44 # SwayFX requires wlroots 0.20, available in Fedora 44+. ExclusiveArch: none %endif BuildRequires: gcc BuildRequires: meson >= 1.3 BuildRequires: scdoc >= 1.9.2 BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(gdk-pixbuf-2.0) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(json-c) >= 0.13 BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(libdrm) >= 2.4.129 BuildRequires: pkgconfig(libevdev) BuildRequires: pkgconfig(libinput) >= 1.26 BuildRequires: pkgconfig(libpcre2-8) BuildRequires: pkgconfig(libsystemd) >= 239 BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangocairo) BuildRequires: pkgconfig(pixman-1) >= 0.43 BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-protocols) >= 1.41 BuildRequires: pkgconfig(wayland-scanner) BuildRequires: pkgconfig(wayland-server) >= 1.21 BuildRequires: pkgconfig(wlroots-0.20) >= 0.20.0 BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-icccm) BuildRequires: pkgconfig(xkbcommon) >= 1.8 # scenefx is linked statically; nothing else in Fedora uses it. Provides: bundled(scenefx) = %{scenefx_version} # Same binaries and /etc/sway/config as sway and its config packages. Conflicts: sway Conflicts: sway-config Recommends: swaybg # The default config's wallpaper; Fedora ships it apart from sway. Recommends: sway-wallpapers Recommends: xorg-x11-server-Xwayland %description SwayFX is a fork of the Sway tiling Wayland compositor that adds eye candy on top of it: rounded corners, window shadows, background blur, and dimming of unfocused windows. It is a drop-in replacement for Sway: the binaries, IPC and configuration are the same, and the effects are configured with extra options in the Sway config. %prep %autosetup -n %{name}-%{version} mkdir -p subprojects/scenefx tar -xf %{SOURCE1} -C subprojects/scenefx --strip-components=1 %build %meson \ --force-fallback-for=scenefx-%{scenefx_version} \ -Dscenefx:default_library=static \ -Dscenefx:examples=false \ -Ddefault-wallpaper=false \ -Dsd-bus-provider=libsystemd %meson_build %install DESTDIR=%{buildroot} %{__meson} install -C %{_vpath_builddir} --no-rebuild --skip-subprojects install -Dpm 0644 subprojects/scenefx/LICENSE %{buildroot}%{_licensedir}/%{name}/scenefx/LICENSE %check %{buildroot}%{_bindir}/sway --version %files %license LICENSE %{_licensedir}/%{name}/scenefx/LICENSE %doc README.md %dir %{_sysconfdir}/sway %config(noreplace) %{_sysconfdir}/sway/config %{_bindir}/sway %{_bindir}/swaybar %{_bindir}/swaymsg %{_bindir}/swaynag %{_datadir}/wayland-sessions/sway.desktop %{_mandir}/man1/sway*.1* %{_mandir}/man5/sway*.5* %{_mandir}/man7/sway*.7* %{bash_completions_dir}/sway* %{fish_completions_dir}/sway*.fish %{zsh_completions_dir}/_sway* %changelog * Fri Sep 18 2026 sachesi - 0.6-2 - Disable -Werror=switch to fix build against libinput's newer LIBINPUT_CONFIG_SCROLL_CIRCULAR enum value (Fedora 45+/rawhide). * Fri Sep 18 2026 sachesi - 0.6-1 - Initial package for Copr.