From 4e22b56ac3c271b2effc7eba2e6d7c31f05c32f5 Mon Sep 17 00:00:00 2001 From: Raven Date: Thu, 25 Apr 2024 17:26:42 +0600 Subject: [PATCH] sway: initial build --- base/sway/README.md | 61 ++++ base/sway/config.minimal | 194 ++++++++++ base/sway/gpgkey-0FDE7BE0E88F5E48.gpg | Bin 0 -> 8249 bytes base/sway/sway-1.9.tar.gz.sig | Bin 0 -> 566 bytes base/sway/sway-portals.conf | 7 + base/sway/sway.spec | 508 ++++++++++++++++++++++++++ 6 files changed, 770 insertions(+) create mode 100644 base/sway/README.md create mode 100644 base/sway/config.minimal create mode 100644 base/sway/gpgkey-0FDE7BE0E88F5E48.gpg create mode 100644 base/sway/sway-1.9.tar.gz.sig create mode 100644 base/sway/sway-portals.conf create mode 100644 base/sway/sway.spec diff --git a/base/sway/README.md b/base/sway/README.md new file mode 100644 index 0000000..2cc9ab4 --- /dev/null +++ b/base/sway/README.md @@ -0,0 +1,61 @@ +Fedora package documentation +=== + +Configuration profiles +--- +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: + + - **sway-config-upstream** - the upstream configuration. The only permitted + modifications to the config file are adjustments for dependencies currently + unavailable in Fedora. + - **sway-config-minimal** - minimal configuration with any optional + dependencies omitted. Suitable for headless servers, containers and + buildroot usage. + +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. + +Custom profile example +--- +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 +``` diff --git a/base/sway/config.minimal b/base/sway/config.minimal new file mode 100644 index 0000000..c9dcf01 --- /dev/null +++ b/base/sway/config.minimal @@ -0,0 +1,194 @@ +# Minimal config for sway +# +# Some executables are still referenced in the config, but those are not +# critical or important enough to abort the startup. +# +# Ex. usage: +# ``` +# dnf install sway sway-config-minimal +# # alternatively, if any config package is already installed +# dnf swap sway-config sway-config-minimal +# +# WLR_BACKENDS=headless WLR_RENDERER=pixman /usr/bin/sway +# ``` +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. + +### Disable some optional dependencies +# +# Do not require xwayland to start +xwayland disable +# Do not require swaybg either +swaybg_command - +# Swaynag is already installed with sway package +# swaynag_command - + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term foot +# Your preferred application launcher +# Note: pass the final command to swaymsg so that the resulting window can be opened +# on the original workspace that the command was run on. +set $menu dmenu_path | wmenu | xargs swaymsg exec -- + +### Input configuration +# +# Example configuration: +# +# input "2:14:SynPS/2_Synaptics_TouchPad" { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# You can get the names of your inputs by running: swaymsg -t get_inputs +# Read `man 5 sway-input` for more information about this section. + +### Key bindings +# +# Basics: +# + # Start a terminal + bindsym $mod+Return exec $term + + # Kill focused window + bindsym $mod+Shift+q kill + + # Start your launcher + bindsym $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # Reload the configuration file + bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # Switch to workspace + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 10 + # Move focused container to workspace + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # Ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # Return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+r mode "resize" diff --git a/base/sway/gpgkey-0FDE7BE0E88F5E48.gpg b/base/sway/gpgkey-0FDE7BE0E88F5E48.gpg new file mode 100644 index 0000000000000000000000000000000000000000..3530f3229196c6dd248e9ce5be9473a8990d4b63 GIT binary patch literal 8249 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 RkAkQPy`Wo*YlM0Ce*wzX|0Dna literal 0 HcmV?d00001 diff --git a/base/sway/sway-1.9.tar.gz.sig b/base/sway/sway-1.9.tar.gz.sig new file mode 100644 index 0000000000000000000000000000000000000000..f79f758d38a8b2d15e6625a8badb74d5a122d7db GIT binary patch literal 566 zcmV-60?GY}0y6{v0SEvc79j*Q|CJ`s?+%xvK;q;N-h1Hak6uUx0%h6q;s6Q>5D(sa z;OLKDNK5Mv{0^35$YSy$a94SZTkhwiQ0>J}=#$yj?=oj6^wazk#OpUOkKzv|$i*oK zuV2~G)?@)9PHjyfCmSm5tdDwA9B}V7iZ;fb;6yWX!$+!Bz{Mx{XCCQTY8ZLkk8*aO z95L3$&wA8bP(~?MIyZ@KHR<`!DOAs}&*w}dp^J$XnW*#|Erv^BR(E3PR9VQwEHM4b??=f2Q_4qOo-ZCHG5kb5F z_Tx5ot(R-~-<)n-{7e!#?>+!A@xMQ-3oBazK;lScevT=69-u)RGLCgig`*?O*hW98 zENc#K*q%sn;b?Q}eOo`E$^6X$c8X1Kj#PbikQyxJ9NvEXxBliT@y2JnQS%fN3U}=W zx<92q>uC?2KdM;rkVX`KW*ml0J7%&Q=lKX3AiYGNC>_@N?})@o&9tA1p`4&66T~YW zW|$pU&%a&3-K)PFrDl7aa0yUs72L5>z=`u98st%Q* ERtMb=Z~y=R literal 0 HcmV?d00001 diff --git a/base/sway/sway-portals.conf b/base/sway/sway-portals.conf new file mode 100644 index 0000000..1e03bbf --- /dev/null +++ b/base/sway/sway-portals.conf @@ -0,0 +1,7 @@ +[preferred] +# Use xdg-desktop-portal-gtk for every portal interface... +default=gtk +# ... except for the ScreenCast, Screenshot and Secret +org.freedesktop.impl.portal.ScreenCast=wlr +org.freedesktop.impl.portal.Screenshot=wlr +org.freedesktop.impl.portal.Secret=gnome-keyring diff --git a/base/sway/sway.spec b/base/sway/sway.spec new file mode 100644 index 0000000..7153070 --- /dev/null +++ b/base/sway/sway.spec @@ -0,0 +1,508 @@ +%global tag 1.9 + +%if 0%{?rhel} <= 9 +%global _rxlibdir /opt/rx/%{_lib} +%endif + +Name: sway +Version: 1.9 +Release: 1%{?dist} +Summary: i3-compatible window manager for Wayland +License: MIT +URL: https://github.com/swaywm/sway +Source0: %{url}/releases/download/%{tag}/%{name}-%{tag}.tar.gz +Source1: %{url}/releases/download/%{tag}/%{name}-%{tag}.tar.gz.sig +# 0FDE7BE0E88F5E48: emersion +Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg + +# Minimal configuration file for headless or buildroot use +Source100: config.minimal +Source101: sway-portals.conf +Source102: README.md + +# Upstream patches + +# Fedora patches + +# Conditional patches + +BuildRequires: gcc-c++ +BuildRequires: gnupg2 +BuildRequires: meson >= 0.60.0 +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(json-c) >= 0.13 +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(libevdev) +BuildRequires: pkgconfig(libinput) >= 1.21.0 +BuildRequires: pkgconfig(libpcre2-8) +BuildRequires: pkgconfig(libsystemd) >= 239 +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(pangocairo) +BuildRequires: pkgconfig(pixman-1) >= 0.42.0 +BuildRequires: pkgconfig(scdoc) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-cursor) +BuildRequires: pkgconfig(wayland-server) >= 1.22.0 +BuildRequires: pkgconfig(wayland-protocols) >= 1.24 +BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-icccm) +BuildRequires: pkgconfig(xkbcommon) >= 1.5.0 + +# Require any of the available configuration packages; +# Prefer the -upstream one if none are directly specified in the package manager transaction +Requires: %{name}-config +Suggests: %{name}-config-upstream + +# Raven +%if 0%{?rhel} <= 9 +Requires: rx-libxkbcommon >= 1.5.0 +Requires: rx-libinput >= 1.21.0 +Requires: rx-pixman >= 0.42.0 +Requires: rx-libwayland-client >= 1.22 +%endif + + +%description +Sway is a tiling window manager supporting Wayland compositor protocol and +i3-compatible configuration. + + +# Configuration presets: +# +%package config-upstream +Summary: Upstream configuration for Sway +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Provides: %{name}-config = %{version}-%{release} +Conflicts: %{name}-config + +# Require the wallpaper referenced in the config. +# Weak dependency here causes a swaynag warning during the configuration load +Requires: sway-wallpapers +# Lack of graphical drivers may hurt the common use case +Requires: mesa-dri-drivers +# Logind needs polkit to create a graphical session +Requires: polkit +# swaybg is used in the default config +Requires: swaybg +# dmenu (as well as rxvt any many others) requires XWayland on Sway +Requires: xorg-x11-server-Xwayland + +# Sway binds the terminal shortcut to one specific terminal. In our case foot +Recommends: foot +# grim is the recommended way to take screenshots on sway 1.0+ +Recommends: grim +# wmenu is the default launcher in sway, but it still requires dmenu_path to work +Recommends: dmenu +Recommends: wmenu +# In addition, xargs is recommended for use in such a launcher arrangement +Recommends: findutils +# Install configs and scripts for better integration with systemd user session +Recommends: sway-systemd +# Both utilities are suggested in the default configuration +Recommends: swayidle +Recommends: swaylock + +# Minimal installation doesn't include Qt Wayland backend +Recommends: (qt5-qtwayland if qt5-qtbase-gui) +Recommends: (qt6-qtwayland if qt6-qtbase-gui) + +%description config-upstream +Upstream configuration for Sway. +Includes all important dependencies for a typical desktop system +with minimal or no divergence from the upstream. + + +%package config-minimal +RemovePathPostfixes: .minimal +Summary: Minimal configuration for Sway +BuildArch: noarch +Requires: %{name} = %{version}-%{release} +Provides: %{name}-config = %{version}-%{release} +Conflicts: %{name}-config +# List of dependencies for headless or buildroot use + +%description config-minimal +Minimal configuration for Sway without any extra dependencies. +Suitable for headless or buildroot use. + + +# The artwork is heavy and we don't use it with our default config +%package wallpapers +Summary: Wallpapers for Sway +BuildArch: noarch +License: CC0-1.0 + +%description wallpapers +Wallpaper collection provided with Sway + + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -N -n %{name}-%{tag} +# apply unconditional patches +%autopatch -p1 -M99 +# apply conditional patches + +%build +%if 0%{?rhel} <= 9 +export LDFLAGS="-L%{_rxlibdir} -Wl,-rpath=%{_rxlibdir} -lharfbuzz ${LDFLAGS}" +export PKG_CONFIG_PATH=%{_rxlibdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}} +%endif +%meson \ + -Dsd-bus-provider=libsystemd \ + -Dwerror=false +%meson_build + +%install +%meson_install +# Install minimal configuration file +install -D -m644 -pv %{SOURCE100} %{buildroot}%{_sysconfdir}/sway/config.minimal +# Install portals.conf for xdg-desktop-portal +install -D -m644 -pv %{SOURCE101} %{buildroot}%{_datadir}/xdg-desktop-portal/sway-portals.conf +# install the documentation +install -D -m644 -pv README.md %{buildroot}%{_pkgdocdir}/README.md +install -D -m644 -pv %{SOURCE102} %{buildroot}%{_pkgdocdir}/README.Fedora +# Create directory for extra config snippets +install -d -m755 -pv %{buildroot}%{_sysconfdir}/sway/config.d + +%files +%license LICENSE +%doc %{_pkgdocdir} +%dir %{_sysconfdir}/sway +%dir %{_sysconfdir}/sway/config.d +%{_mandir}/man1/sway* +%{_mandir}/man5/* +%{_mandir}/man7/* +%caps(cap_sys_nice=ep) %{_bindir}/sway +%{_bindir}/swaybar +%{_bindir}/swaymsg +%{_bindir}/swaynag +%dir %{_datadir}/xdg-desktop-portal +%{_datadir}/xdg-desktop-portal/sway-portals.conf +%{bash_completions_dir}/sway* +%{fish_completions_dir}/sway*.fish +%{zsh_completions_dir}/_sway* + +%files config-upstream +%config(noreplace) %{_sysconfdir}/sway/config +%{_datadir}/wayland-sessions/sway.desktop + +%files config-minimal +%config(noreplace) %{_sysconfdir}/sway/config.minimal + +%files wallpapers +%license assets/LICENSE +%{_datadir}/backgrounds/sway + +%changelog +* Sat Feb 24 2024 Aleksei Bavshin - 1.9-1 +- Update to 1.9 + +* Sun Feb 04 2024 Aleksei Bavshin - 1.9~rc2-1 +- Update to 1.9-rc2 (rhbz#2260566) + +* Sun Jan 14 2024 Aleksei Bavshin - 1.8.1-4 +- Use gnome-keyring for Secret portal implementation + +* Thu Sep 14 2023 Aleksei Bavshin - 1.8.1-3 +- Add sway-portals.conf for xdg-desktop-portal >= 1.17 + +* Sat Jul 22 2023 Fedora Release Engineering - 1.8.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Feb 12 2023 Aleksei Bavshin - 1.8.1-1 +- Update to 1.8.1 +- Set CAP_SYS_NICE on f38+ + +* Sat Jan 21 2023 Fedora Release Engineering - 1.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sun Dec 25 2022 Aleksei Bavshin - 1.8-1 +- Update to 1.8 + +* Fri Dec 02 2022 Aleksei Bavshin - 1.8~rc1-1 +- Update to 1.8-rc1 +- Create two sway-config- packages with different sets of dependencies. +- Move sway.desktop to sway-config-upstream + +* Mon Nov 14 2022 Aleksei Bavshin - 1.7-4 +- Add upstream patch to fix crash in xdg-activation +- Convert license to SPDX + +* Sat Jul 23 2022 Fedora Release Engineering - 1.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jun 01 2022 Aleksei Bavshin - 1.7-2 +- Drop patches for wayland 1.19/meson 0.59 compatibility +- Split package with the default wallpapers +- Add upstream patch to fix crash in layer-shell code + +* Sat Jan 22 2022 Aleksei Bavshin - 1.7-1 +- Update to 1.7 +- Add scripts from contrib to the package + +* Sat Jan 22 2022 Fedora Release Engineering - 1.7~rc3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Jan 16 2022 Aleksei Bavshin - 1.7~rc3-1 +- Update to 1.7-rc3 +- Change default terminal dependency to foot +- Disable `werror` to work around a couple of new warnings in GCC 12 + +* Mon Jan 10 2022 Aleksei Bavshin - 1.6.1-4 +- Add upstream patch to increase RLIMIT_NOFILE + +* Fri Jul 23 2021 Fedora Release Engineering - 1.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 10 2021 Björn Esser - 1.6.1-2 +- Rebuild for versioned symbols in json-c + +* Thu Jun 24 2021 Aleksei Bavshin - 1.6.1-1 +- Update to 1.6.1 +- Add Recommends: swayidle, swaylock +- Add upstream patch to fix pixman renderer init. + +* Wed Apr 07 2021 Aleksei Bavshin - 1.6-1 +- Update to 1.6 (#1939820) + +* Sat Feb 20 2021 Aleksei Bavshin - 1.5.1-3 +- Recommend wayland backend for Qt +- Add subpackage for contrib/grimshot screenshot tool +- Add 'Recommend: sway-systemd' + +* Wed Jan 27 2021 Fedora Release Engineering - 1.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Nov 10 2020 Aleksei Bavshin - 1.5.1-1 +- Update to 1.5.1 + +* Thu Oct 22 2020 Aleksei Bavshin - 1.5-3 +- Remove default terminal patching; alacritty is avaliable in Fedora (#1830595) + +* Wed Jul 29 2020 Fedora Release Engineering - 1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 15 2020 Aleksei Bavshin - 1.5-1 +- Update to 1.5 +- Fix urxvt256c-ml dependency for f32+ +- Add source verification +- Cleanup build dependencies + +* Sat May 30 2020 Jan Pokorný 1.4-7 +- Enhance greenfield readiness with optional pull of default driver set & xargs + +* Thu Apr 30 2020 Aleksei Bavshin - 1.4-6 +- Add patch for layer-shell popups layer (#1829130) + +* Tue Apr 21 2020 Björn Esser - 1.4-5 +- Rebuild (json-c) + +* Wed Feb 26 2020 Aleksei Bavshin - 1.4-4 +- Fix default terminal and background + +* Sun Feb 09 2020 Till Hofmann - 1.4-3 +- Add patch to fix strcmp on nullptr (upstream PR #4991) + +* Fri Feb 07 2020 Jan Staněk - 1.4-2 +- Apply upstream patch to allow compiling with -fno-common flag + +* Thu Feb 06 2020 Joe Walker 1.4-1 +- Update to 1.4 +- Added Build requires to pull in mesa-libEGL-devel manually + +* Fri Jan 31 2020 Fedora Release Engineering - 1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jan 25 2020 Benjamin Lowry 1.2-3 +- Uncomment 'Recommends: grim' + +* Wed Sep 11 2019 Ivan Mironov - 1.2-2 +- Add patch to fix easily reproducible crash + +* Thu Aug 29 2019 Jeff Peeler - 1.2-1 +- Update to 1.2 + +* Sat Jul 27 2019 Fedora Release Engineering - 1.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jun 23 2019 Till Hofmann - 1.1.1-1 +- Update to 1.1.1 +- Add 'Requires: swaybg' (swaybg has been split from sway) +- Remove upstreamed patch + +* Sun Mar 24 2019 Till Hofmann - 1.0-3 +- Replace 'Requires: dmenu' by 'Recommends: dmenu' +- Re-enable manpages +- Remove cap_sys_ptrace, cap_sys_tty_config from sway binary +- Replace 'Requires: libinput' by 'BuildRequires: pkgconfig(libinput)' +- Replace 'BuildRequires: wlroots-devel' by 'BuildRequires: pkgconfig(wlroots)' + +* Thu Mar 21 2019 Till Hofmann - 1.0-2 +- Remove obsolete (and failing) call to %%make_install +- Fix directories without owner + +* Mon Mar 18 2019 Jeff Peeler - 1.0-1 +- Update to 1.0 (without man pages) + +* Thu Feb 07 2019 Björn Esser - 0.15.2-3 +- Add patch to disable -Werror, fixes FTBFS + +* Sun Feb 03 2019 Fedora Release Engineering - 0.15.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jul 26 2018 Till Hofmann - 0.15.2-1 +- Update to stable release 0.15.2 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.15.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Mar 06 2018 Björn Esser - 0.15.1-3 +- Rebuilt for libjson-c.so.4 (json-c v0.13.1) + +* Fri Feb 09 2018 Fedora Release Engineering - 0.15.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Dec 30 2017 Till Hofmann - 0.15.1-1 +- Update to 0.15.1 +- Remove upstreamed patch (upstream PR #1517) + +* Thu Dec 14 2017 Björn Esser - 0.15.0-4 +- Add upstream patch fixing issues with json-c + +* Sun Dec 10 2017 Björn Esser - 0.15.0-3 +- Rebuilt for libjson-c.so.3 + +* Sat Nov 11 2017 Zuzana Svetlikova - 0.15.0-2 +- Bump for wlc rebuild + +* Fri Nov 10 2017 Zuzana Svetlikova - 0.15.0-1 +- update to stable 0.15.0 + +* Tue Oct 10 2017 Zuzana Svetlikova - 0.15.0-0.3.rc1 +- Rebuild for fix for #1388 +- fix versioning according to guidelines + +* Mon Oct 09 2017 Zuzana Svetlikova - 0.15.rc1-1 +- Update to 0.15.0-rc1 +- remove patch +- fix sources link + +* Thu Oct 05 2017 Zuzana Svetlikova - 0.14.0-3 +- Fix freezing + +* Thu Aug 03 2017 Fedora Release Engineering - 0.14.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Aug 02 2017 Zuzana Svetlikova - 0.14.0-1 +- Update to 0.14.0 +- add libinput as dependency +- add dbus as build dependency for tray icon support +- remove -Wno-error flag + +* Thu Jul 27 2017 Fedora Release Engineering - 0.13.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun Jun 18 2017 Fabio Alessandro Locati - 0.13.0-1 +- Update to 0.13.0 + +* Mon Apr 03 2017 Fabio Alessandro Locati - 0.12.2-1 +- Update to 0.12.2 + +* Wed Mar 15 2017 Fabio Alessandro Locati - 0.12.1-1 +- Update to 0.12.1 + +* Wed Mar 08 2017 Fabio Alessandro Locati - 0.12-1 +- Update to 0.12 + +* Tue Feb 28 2017 Fabio Alessandro Locati - 0.12-0.rc2 +- Update to 0.12-rc2 + +* Sat Feb 25 2017 Fabio Alessandro Locati - 0.12-0.rc1 +- Update to 0.12-rc1 + +* Sat Feb 11 2017 Fedora Release Engineering - 0.11-7.gitb3c0aa3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 24 2017 Fabio Alessandro Locati - 0.11-6.gitb3c0aa3 +- Update to HEAD + +* Thu Jan 12 2017 Fabio Alessandro Locati - 0.11-5 +- Fix bug #1008 with backported patch + +* Thu Dec 29 2016 Fabio Alessandro Locati - 0.11-4 +- Set ptrace capability for sway + +* Wed Dec 28 2016 Fabio Alessandro Locati - 0.11-3 +- Fix LD_LIBRARY_PATH + +* Wed Dec 28 2016 Fabio Alessandro Locati - 0.11-2 +- Fix bug #971 with backported patch + +* Tue Dec 27 2016 Fabio Alessandro Locati - 0.11-1 +- Update to 0.11 + +* Sun Dec 18 2016 Fabio Alessandro Locati - 0.11-0.rc3 +- Update to 0.11-rc3 + +* Sat Dec 17 2016 Fabio Alessandro Locati - 0.11-0.rc2 +- Update to 0.11-rc2 + +* Sat Nov 26 2016 Fabio Alessandro Locati - 0.10-2 +- Require Xwayland instead of just suggesting it, since at the moment is needed by dmenu (and other) + +* Wed Oct 26 2016 Fabio Alessandro Locati - 0.10-1 +- Update to 0.10 + +* Thu Oct 13 2016 Fabio Alessandro Locati - 0.10-0.1.rc3 +- Update to 0.10-rc3 + +* Tue Oct 04 2016 Fabio Alessandro Locati - 0.10-0.1.rc2 +- Update to 0.10-rc2 + +* Wed Sep 28 2016 Fabio Alessandro Locati - 0.10-0.1.rc1 +- Update to 0.10-rc1 + +* Tue Sep 06 2016 Fabio Alessandro Locati - 0.9-4 +- Do not Require the urxvt shell +- Rebuild due to a wlc rebuild +- Add Recommends ImageMagick + +* Wed Aug 10 2016 Fabio Alessandro Locati - 0.9-3 +- Remove some compilation flags that were not needed + +* Sun Aug 07 2016 Fabio Alessandro Locati - 0.9-2 +- Add dmenu dependency +- Add rxvt-unicode-256color-ml dependency +- Use urxvt256c-ml instead of urxvt by default +- Improve default wallpaper +- Add suggests xorg-x11-server-Xwayland + +* Wed Aug 03 2016 Fabio Alessandro Locati - 0.9-1 +- Upgrade to 0.9 + +* Thu Jul 07 2016 Fabio Alessandro Locati - 0.8-2 +- Move ffmpeg and ImageMagick from Required to Suggested + +* Thu Jul 07 2016 Fabio Alessandro Locati - 0.8-1 +- Update to version 0.8 +- Re-enable ZSH bindings +- Remove sway wallpapers + +* Sun May 29 2016 Fabio Alessandro Locati - 0.7-1 +- Update to version 0.7 +- Drop ZSH bindings that are no longer shipped with Sway + +* Thu May 05 2016 Fabio Alessandro Locati - 0.6-1 +- Update to current upstream version + +* Wed Apr 06 2016 Fabio Alessandro Locati - 0.3-1 +- Update to current upstream version + +* Sun Feb 14 2016 Fabio Alessandro Locati - 0-1.20160214git016a774 +- Initial packaging