The Sway package in Fedora defers most of the dependencies and the config
file ownership to the sway-config-*
subpackages. This allows us to ship
different configuration profiles with different sets of runtime dependencies.
This also allows anyone to create a package with their preferred system-wide
configuration defaults and use it instead of the default Fedora profiles.
The profiles currently defined in the sway
source package are the following:
The config packages are mutually exclusive, and one of these must always be installed. The one selected by default is sway-config-upstream. At any moment, you can switch the installed configuration with one of the following commands:
dnf swap sway-config sway-config-upstream
dnf swap sway-config sway-config-minimal
# for a third-party configuration profile:
dnf swap sway-config sway-config-custom
The command will replace the default /etc/sway/config
file and apply the new
set of dependencies. Packages unused by the new profile will be autoremoved.
An example spec header for a custom configuration profile:
Name: sway-config-custom
Version: 1.0
Release: 1%{?dist}
Summary: Custom configuration for Sway
BuildArch: noarch
Requires: sway >= 1.7
Provides: sway-config = %{version}-%{release}
Conflicts: sway-config
# common dependencies
# ...
# profile dependencies
Requires: waybar
%files
%config(noreplace) %{_sysconfdir}/sway/config
# Session file also belongs to the configuration subpackage;
# Otherwise we won't be able to add a wrapper script or set additional properties
%{_datadir}/wayland-sessions/sway.desktop