Name: deckery-hud Version: 0.3.0 Release: 1%{?dist} Summary: Steam Deck button-layout HUD overlay for KDE Plasma desktop License: GPL-3.0-only URL: https://github.com/Plasma-Deckery/deckery-hud # Source is generated by `make srpm` (see .copr/Makefile) — not fetched from URL. Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildArch: noarch BuildRequires: systemd-rpm-macros # Runtime: all dependencies are available as Fedora RPMs — no bundled venv needed. Requires: python3 # GObject Introspection bindings (gi.repository.Gtk, Gio, GLib, Pango, PangoCairo) Requires: python3-gobject # cairo / PangoCairo drawing (gi.repository → cairo Python bindings) Requires: python3-cairo # GTK4 runtime + typelib (gi.repository.Gtk 4.0) Requires: gtk4 # Wayland layer-shell protocol for GTK4 (gi.repository.Gtk4LayerShell 1.0) # No LD_PRELOAD needed — GI loads the typelib directly. Requires: gtk4-layer-shell # SVG rendering (gi.repository.Rsvg 2.0) Requires: librsvg2 # Pango text layout typelib (gi.repository.Pango, PangoCairo) Requires: pango # Toggle script uses gdbus from glib2-devel / glib2 tools Requires: glib2 Recommends: deckery-tray %description deckery-hud is a persistent Wayland layer-shell overlay that renders the Steam Deck button layout, trackpad state, and active remappings. It reads /tmp/makima-state.json via inotify and redraws on every state change. The HUD is controlled via D-Bus (de.plasma_deckery.hud) — the deckery-tray applet sends Toggle calls to show/hide the overlay. %prep %autosetup -n %{name}-%{version} %build # Pure Python — nothing to compile. %install # Python source — installed to src/ to mirror the dev checkout structure. # ipc.py uses parent.parent of __file__ to find assets/, which works # identically for dev (src/ipc.py → repo root) and RPM (/usr/lib/deckery-hud/src/ipc.py → /usr/lib/deckery-hud/). install -dm755 %{buildroot}%{_prefix}/lib/%{name}/src install -pm644 src/*.py %{buildroot}%{_prefix}/lib/%{name}/src/ # Assets (SVG button layouts) — sit at parent level, next to src/ install -dm755 %{buildroot}%{_prefix}/lib/%{name}/assets install -pm644 assets/*.svg %{buildroot}%{_prefix}/lib/%{name}/assets/ # Toggle script (called by tray and makima bindings to show/hide HUD) install -Dm755 deckery-hud-toggle %{buildroot}%{_bindir}/deckery-hud-toggle # Systemd user service install -Dm644 packaging/deckery-hud.service \ %{buildroot}%{_userunitdir}/deckery-hud.service %post %systemd_user_post deckery-hud.service %preun %systemd_user_preun deckery-hud.service %files %license LICENSE %doc README.md %{_prefix}/lib/%{name}/src/ %{_prefix}/lib/%{name}/assets/ %{_bindir}/deckery-hud-toggle %{_userunitdir}/deckery-hud.service %changelog * Sat Aug 16 2026 Philipp Schimmelfennig - 0.3.0-1 - Initial RPM packaging - Wayland layer-shell HUD overlay via GTK4 + gtk4-layer-shell GI bindings - Reads /tmp/makima-state.json via inotify, redraws on state change - D-Bus service (de.plasma_deckery.hud) with Toggle method - No LD_PRELOAD, no distrobox — runs directly via python3 - BindsTo=deckery-tray.service preserved as-is from original service