%global default_terminfo foot %global foot_terminfo foot-extra %global fcft_minver 3.3.1 Name: foot Version: 1.28.0 Release: 32%{?dist} Summary: Fast, lightweight and minimalistic Wayland terminal emulator # Main package license: MIT # icons/hicolor/scalable/apps/foot.svg: CC-BY-SA-4.0 License: MIT AND CC-BY-SA-4.0 URL: https://codeberg.org/dnkl/%{name} Source0: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz Source1: %{url}/releases/download/%{version}/%{name}-%{version}.tar.gz.sig # Daniel Eklöf (Git signing) Source2: gpgkey-5BBD4992C116573F.asc Source3: org.codeberg.dnkl.foot.metainfo.xml # Session save/restore for --server (downstream) Patch0: foot-session-restore.patch Patch1: foot-vulkan.patch Patch2: foot-tabs.patch Patch3: foot-theme-reload.patch Patch4: foot-session-history.patch Patch5: foot-tab-activity.patch BuildRequires: gcc BuildRequires: gpgverify BuildRequires: meson >= 0.59.0 BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: python3 BuildRequires: systemd-rpm-macros BuildRequires: libutempter BuildRequires: pkgconfig(fcft) >= %{fcft_minver} BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(libutf8proc) BuildRequires: pkgconfig(pixman-1) BuildRequires: pkgconfig(scdoc) BuildRequires: pkgconfig(systemd) BuildRequires: pkgconfig(tllist) >= 1.1.0 BuildRequires: pkgconfig(vulkan) BuildRequires: glslang BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-cursor) BuildRequires: pkgconfig(wayland-protocols) >= 1.49 BuildRequires: pkgconfig(wayland-scanner) BuildRequires: pkgconfig(xkbcommon) # require *-static for header-only library BuildRequires: tllist-static Requires: fcft%{?_isa} >= %{fcft_minver} Recommends: ncurses-base Requires: (ncurses-base >= 6.4-5.20230520 if ncurses-base) # require matching version of foot-terminfo if installed Requires: (%{name}-terminfo = %{version}-%{release} if %{name}-terminfo) # Optional dependency for bell = notify option Recommends: /usr/bin/notify-send # Optional dependency for opening URLs Recommends: /usr/bin/xdg-open Requires: hicolor-icon-theme %description Fast, lightweight and minimalistic Wayland terminal emulator. Features: * Fast * Lightweight, in dependencies, on-disk and in-memory * Wayland native * DE agnostic * Server/daemon mode * User configurable font fallback * On-the-fly font resize * On-the-fly DPI font size adjustment * Scrollback search * Keyboard driven URL detection * Color emoji support * IME (via text-input-v3) * Multi-seat * Synchronized Updates support * Sixel image support * Session save/restore in server mode (downstream patch) %package terminfo Summary: Terminfo files for %{name} terminal BuildRequires: /usr/bin/tic Requires: ncurses-base %description terminfo %{summary}. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -p1 %build %meson \ -Dterminfo-base-name=%{foot_terminfo} \ -Ddefault-terminfo=%{default_terminfo} %meson_build %install %meson_install install -D -pv -m0644 %{SOURCE3} \ %{buildroot}%{_metainfodir}/org.codeberg.dnkl.foot.metainfo.xml # Will be installed to correct location with rpm macros rm %{buildroot}%{_docdir}/%{name}/LICENSE %check %meson_test appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml desktop-file-validate \ %{buildroot}/%{_datadir}/applications/%{name}*.desktop %post %systemd_user_post %{name}-server.{service,socket} %preun %systemd_user_preun %{name}-server.{service,socket} %files %license LICENSE %dir %{_sysconfdir}/xdg/%{name} %config(noreplace) %{_sysconfdir}/xdg/%{name}/%{name}.ini %{_bindir}/%{name} %{_bindir}/%{name}client %{_datadir}/%{name}/ %{_datadir}/applications/%{name}*.desktop %{_datadir}/icons/hicolor/48x48/apps/%{name}.png %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg %{_metainfodir}/org.codeberg.dnkl.foot.metainfo.xml %{bash_completions_dir}/foot* %{fish_completions_dir}/foot* %{zsh_completions_dir}/_foot* %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/CHANGELOG.md %doc %{_docdir}/%{name}/README.md %{_mandir}/man1/%{name}.1* %{_mandir}/man1/%{name}client.1* %{_mandir}/man5/%{name}.ini.5* %{_mandir}/man7/%{name}-ctlseqs.7* %{_userunitdir}/%{name}-server.service %{_userunitdir}/%{name}-server.socket %files terminfo %license LICENSE %dir %{_datadir}/terminfo/f %{_datadir}/terminfo/f/%{foot_terminfo} %{_datadir}/terminfo/f/%{foot_terminfo}-direct %changelog * Thu Oct 29 2026 Lachlan Marie - 1.28.0-32 - Keep previous sessions in history - Add session history menu and button - Keep last window on close - Keep detached tabs until exit - Block signals until handlers exist - Drag tabs to pin or unpin - Add tab activity spinner * Thu Oct 29 2026 Lachlan Marie - 1.28.0-31 - Keep tabs whose footclient dies at logout * Tue Oct 27 2026 Lachlan Marie - 1.28.0-30 - Open new tabs in $HOME * Mon Oct 26 2026 Lachlan Marie - 1.28.0-29 - Fall back to program name for empty tab titles - Redraw sidebar and split background on theme switch * Mon Oct 26 2026 Lachlan Marie - 1.28.0-28 - Restore Fedora metainfo, gpgverify, xdg dir * Sun Oct 25 2026 Lachlan Marie - 1.28.0-27 - Reload colours from config on SIGUSR1/SIGUSR2 * Sat Oct 24 2026 Lachlan Marie - 1.28.0-26 - Smooth highlight glide across the pinned gap - Skip tab re-sort on hover and scroll - Allocation-free pinned row count - Close stray /dev/null fd in restore rules * Sat Oct 24 2026 Lachlan Marie - 1.28.0-25 - Trim session, vulkan and tabs patches - Require Vulkan at build time - Drop pre-v9 session state readers * Fri Oct 23 2026 Lachlan Marie - 1.28.0-24 - Move window prefix to sidebar menu - Overlay hover close button on titles * Fri Oct 23 2026 Lachlan Marie - 1.28.0-23 - Make name prefix per window * Fri Oct 23 2026 Lachlan Marie - 1.28.0-22 - Add tab name prefix - Keep sorted tab lists sorted - Add manual sort order * Fri Oct 23 2026 Lachlan Marie - 1.28.0-21 - Fix window resizing when splits change - Fix crash splitting after unsplit - Separate confirm dialog buttons * Fri Oct 23 2026 Lachlan Marie - 1.28.0-20 - GUI-style confirm dialogs - Centered modals; fixed [tabs] switcher-width - Cursor editing in rename and switcher - Mouse wheel in menus and switcher - Debounce closing tabs and modal actions - Pinned tabs and splits stay at the top; bigger pin gap - Drag a split pane out within the sidebar - Search button centered in the footer - Reset cursor after drags - Redraw all panes together on split relayout * Fri Oct 23 2026 Lachlan Marie - 1.28.0-19 - Menus highlight only the item under the pointer - Gap between pinned and unpinned tabs - Drop a tab on another tab's row edge to split them - Search button in sidebar footer - Scrolling quick switcher list; key repeat in menus - Fix broadcast input with key repeat - Commit split panes together per frame * Fri Oct 23 2026 Lachlan Marie - 1.28.0-18 - Sort menu: name, recent use, program, opening order - Mouse wheel over sidebar switches tabs * Fri Oct 23 2026 Lachlan Marie - 1.28.0-17 - Hover close button on tabs - Rename tabs (double-click), pin tabs - Quick switcher (Ctrl+Shift+Space) - Reopen closed tab (Ctrl+Shift+Y, last 10) - Done marks and notifications for long commands - Broadcast input to split panes - Draggable pane dividers - Draggable sidebar scrollbar on the outer edge - Subtle sidebar animations ([tabs] animations) - Synced pane updates during resize - Fix activity never marking restored tabs - Fix sidebar button staying expanded * Fri Oct 23 2026 Lachlan Marie - 1.28.0-16 - Sidebar lists split panes on their own lines - Split to any side; vertical splits - Drop in a pane's middle to add as a tab - Scrollable tab list - Middle-elide long tab titles - Collapse hidden-sidebar button to an edge sliver - Compositor close closes the current tab - Smaller + hover zone - Lighter layout during live resize - Fix touchpad scroll speed at fractional/2x scale - Fix drops into split gaps * Fri Oct 23 2026 Lachlan Marie - 1.28.0-15 - Sidebar on every window, hidden by default - Drag tabs between windows, with drag label and drop hints - Ctrl/Shift-click to select tabs; split or close selected - Hover feedback and pointer cursors in sidebar and menus - First click on an unfocused pane only focuses it - Default keys: Ctrl+PgDn/PgUp, Ctrl+Shift+j/k, Ctrl+Shift+PgDn/PgUp to move - Add FOOT_TAB_ID and footclient --focus-tab - Mark activity only for new lines, not redraws - Fix doubled transparency in split view - Fix crash restoring a split view at default size * Fri Oct 23 2026 Lachlan Marie - 1.28.0-14 - Drop workspaces; restore v5 sessions as flat tabs - Add resizable sidebar - Add sidebar hide/show arrow, [tabs] show - Add [tabs] position=left|right - Add tab context menu: close, kill, duplicate, split, unsplit - Add [session-duplicate] rules - Add drag tab onto terminal to split - Add toggle-sidebar action - Fix crash entering split view background * Fri Oct 23 2026 Lachlan Marie - 1.28.0-13 - Merge unnamed workspace into current one * Fri Oct 23 2026 Lachlan Marie - 1.28.0-12 - Fix merge-window hang * Tue Oct 20 2026 Lachlan Marie - 1.28.0-11 - Add vertical tabs with sidebar - Add workspaces - Add split view - Add tab drag and detach - Add foot/footclient --tab - Session state v5 * Sun Oct 18 2026 Lachlan Marie - 1.28.0-10 - Add optional Vulkan renderer ([tweak] renderer=vulkan) * Wed Oct 07 2026 Lachlan Marie - 1.28.0-9 - Restore window placement via xdg-session-management * Fri Oct 02 2026 Lachlan Marie - 1.28.0-8 - Drop relaunch-command option - Write rule results on next save - Pass shell to sh unparsed - Verify source signature * Thu Oct 01 2026 Lachlan Marie - 1.28.0-7 - Fixed-width restored-session banner - Fixes banner wrapping on resize - Re-evaluate restore rules each save - Async rule evaluation - Fix $SHELL in restored windows - Reflow-friendly snapshot - Keep closed windows briefly at logout - Preserve nested restore order * Fri Sep 18 2026 Lachlan Marie - 1.28.0-6 - Skip session save within 5s of a window closing - Fixes logout overwriting saved state * Thu Sep 17 2026 Lachlan Marie - 1.28.0-5 - Save launch command per window - Follow interactive process chain on pty - Add [session-restore] rules - Snapshot primary screen only - State format v2 * Tue Sep 15 2026 Lachlan Marie - 1.28.0-4 - Relaunch foreground program on restore - Add relaunch-command option * Tue Sep 15 2026 Lachlan Marie - 1.28.0-3 - Read cwd from /proc - Keep colors in restored scrollback - Nicer restored-session banner * Tue Sep 15 2026 Lachlan Marie - 1.28.0-2 - Add session save/restore patch * Wed Sep 02 2026 Lachlan Marie - 1.28.0-1 - Update to 1.28.0 * Fri May 15 2026 Lachlan Marie - 1.27.0-1 - Update to 1.27.0 * Mon Mar 23 2026 Lachlan Marie - 1.26.1-1 - Update to 1.26.1 * Fri Jan 16 2026 Fedora Release Engineering - 1.25.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild * Thu Oct 16 2025 Aleksei Bavshin - 1.25.0-1 - Update to 1.25.0 (#2404359) * Sun Sep 14 2025 Aleksei Bavshin - 1.24.0-1 - Update to 1.24.0 (#2394766) * Wed Jul 23 2025 Fedora Release Engineering - 1.23.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild * Wed Jul 23 2025 Aleksei Bavshin - 1.23.1-1 - Update to 1.23.1 (#2382804) * Sat Jul 19 2025 Aleksei Bavshin - 1.23.0-1 - Update to 1.23.0 (#2380423) * Thu May 01 2025 Aleksei Bavshin - 1.22.3-1 - Update to 1.22.3 (#2363239) * Wed Apr 30 2025 Aleksei Bavshin - 1.22.2-1 - Update to 1.22.2 (#2363052) * Sat Apr 26 2025 Aleksei Bavshin - 1.22.1-1 - Update to 1.22.1 (#2362436) * Thu Apr 17 2025 Aleksei Bavshin - 1.22.0-1 - Update to 1.22.0 (#2360691) * Mon Mar 17 2025 Aleksei Bavshin - 1.21.0-1 - Update to 1.21.0 (#2352903) * Sun Jan 19 2025 Aleksei Bavshin - 1.20.2-1 - Update to 1.20.2 (#2338726) * Thu Jan 16 2025 Fedora Release Engineering - 1.20.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Fri Jan 03 2025 Aleksei Bavshin - 1.20.1-1 - Update to 1.20.1 (#2335391) * Wed Jan 01 2025 Aleksei Bavshin - 1.20.0-1 - Update to 1.20.0 (#2335133) * Thu Oct 24 2024 Aleksei Bavshin - 1.19.0-1 - Update to 1.19.0 (#2321289) * Tue Oct 08 2024 Aleksei Bavshin - 1.18.1-2 - Rebuilt for utf8proc 2.9.0 * Thu Aug 15 2024 Aleksei Bavshin - 1.18.1-1 - Update to 1.18.1 (#2304836) * Sat Aug 03 2024 Aleksei Bavshin - 1.18.0-1 - Update to 1.18.0 (#2302508) * Wed Jul 17 2024 Fedora Release Engineering - 1.17.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Wed Apr 17 2024 Aleksei Bavshin - 1.17.2-1 - Update to 1.17.2 (#2275462) * Sat Apr 13 2024 Aleksei Bavshin - 1.17.1-1 - Update to 1.17.1 (#2274532) * Sat Apr 06 2024 Aleksei Bavshin - 1.17.0-1 - Update to 1.17.0 (#2244671) - Convert License tag to SPDX - Verify source signature * Wed Jan 24 2024 Fedora Release Engineering - 1.16.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Fri Jan 19 2024 Fedora Release Engineering - 1.16.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sat Oct 14 2023 Aleksei Bavshin - 1.16.1-1 - Update to 1.16.1 (#2243307) * Tue Aug 08 2023 Aleksei Bavshin - 1.15.3-1 - Update to 1.15.3 (#2229756) * Sun Jul 30 2023 Aleksei Bavshin - 1.15.2-1 - Update to 1.15.2 (#2227522) * Sat Jul 22 2023 Aleksei Bavshin - 1.15.1-1 - Update to 1.15.1 (#2224500) * Wed Jul 19 2023 Fedora Release Engineering - 1.15.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Fri Jul 14 2023 Aleksei Bavshin - 1.15.0-1 - Update to 1.15.0 (#2222891) * Thu Jun 29 2023 Aleksei Bavshin - 1.14.0-3 - Rename terminfo entries to 'foot-extra'/'foot-extra-direct' (rhbz#2217996) - Use 'foot' terminfo entry from ncurses-base by default on f39+ * Sat Apr 29 2023 Aleksei Bavshin - 1.14.0-2 - Use correct dock and window switcher icons in GNOME * Tue Apr 04 2023 Aleksei Bavshin - 1.14.0-1 - Update to 1.14.0 (#2184129) - Install AppStream metadata - Use new macros for shell completion directories * Thu Jan 19 2023 Fedora Release Engineering - 1.13.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Wed Aug 31 2022 Aleksei Bavshin - 1.13.1-1 - Update to 1.13.1 (#2123078) * Sun Aug 07 2022 Aleksei Bavshin - 1.13.0-1 - Update to 1.13.0 * Thu Jul 21 2022 Fedora Release Engineering - 1.12.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Thu Apr 28 2022 Aleksei Bavshin - 1.12.1-1 - Update to 1.12.1 (#2079544) * Fri Apr 22 2022 Aleksei Bavshin - 1.12.0-1 - Update to 1.12.0 (#2077953) - Example config was moved to /etc/xdg/foot/foot.ini (upstream change) - Install systemd unit files for foot --server * Sat Feb 05 2022 Aleksei Bavshin - 1.11.0-1 - Update to 1.11.0 (#2051005) * Thu Jan 20 2022 Fedora Release Engineering - 1.10.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Wed Dec 08 2021 Aleksei Bavshin - 1.10.3-1 - Update to 1.10.3 (#2030411) * Fri Dec 03 2021 Aleksei Bavshin - 1.10.2-1 - Update to 1.10.2 * Mon Nov 22 2021 Aleksei Bavshin - 1.10.1-1 - Update to 1.10.1 (#2025735) * Sun Nov 14 2021 Aleksei Bavshin - 1.10.0-1 - Update to 1.10.0 (#2009965) * Fri Oct 01 2021 Aleksei Bavshin - 1.9.1-1 - Update to 1.9.1 * Fri Aug 27 2021 Aleksei Bavshin - 1.9.0-1 - Update to 1.9.0 - Override custom terminfo dir with /usr/share/terminfo * Wed Jul 21 2021 Fedora Release Engineering - 1.8.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Tue Jul 20 2021 Aleksei Bavshin - 1.8.2-2 - Add runtime dependency on fcft 2.4 * Sun Jul 18 2021 Aleksei Bavshin - 1.8.2-1 - Update to 1.8.2 * Fri Jul 02 2021 Aleksei Bavshin - 1.8.1-1 - Update to 1.8.1 * Fri Jun 25 2021 Aleksei Bavshin - 1.8.0-1 - Update to 1.8.0 * Sun Apr 18 2021 Aleksei Bavshin - 1.7.2-1 - Update to 1.7.2 * Sun Mar 28 2021 Aleksei Bavshin - 1.7.1-1 - Update to 1.7.1 * Sat Mar 20 2021 Aleksei Bavshin - 1.7.0-1 - Update to 1.7.0 * Wed Mar 10 2021 Aleksei Bavshin - 1.6.4-1 - Initial import (#1912856)