[Feature]: Package the GNOME Shell frontmost-window extension via nfpm
- Dominant language
- Rust
- Stars
- 21k
- Forks
- 675
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 180
Description
### Pre-flight checklist
- [x] I searched existing issues and the Roadmap, and this isn't already tracked.
### Problem / motivation
#191 added a GNOME Shell companion extension (`crates/openlogi-hook/gnome-shell-extension/openlogi-frontmost@openlogi.dev/`) so per-app profiles can work on GNOME/Wayland, where Mutter offers no protocol/portal for the focused window's `WM_CLASS`. Today the extension isn't part of any Linux package — `packaging/linux/nfpm.yaml` has no `contents:` entry for it. GNOME/Wayland users have to manually copy the extension files into `~/.local/share/gnome-shell/extensions/` and log out/in, per the README in that directory. That's a rough first-run experience and easy to miss.
This was flagged as an open question in #191 itself: extension distribution (bundle-and-document vs. extensions.gnome.org vs. auto-install) was left unresolved, with a note that #173/#179 (nfpm packaging) — the blocker for the bundle-and-document approach — have since merged.
### Proposed solution
Add the extension to `packaging/linux/nfpm.yaml` as a `contents:` entry, installed to `/usr/share/gnome-shell/extensions/openlogi-frontmost@openlogi.dev/` (matching the system-wide GNOME extension install path), so `.deb`/`.rpm`/`.pkg.tar.zst` installs ship it automatically. Update `crates/openlogi-hook/gnome-shell-extension/README.md` and the Linux install docs accordingly — users would still need to `gnome-extensions enable` and log out/in (Wayland can't hot-reload the shell), but wouldn't need to manually copy files first.
Publishing to extensions.gnome.org is a larger, separate effort (review process, versioning independent of OpenLogi releases) and can stay a follow-up.
### Alternatives considered
- Auto-install from the app itself (GUI or agent writes the extension files on first run) — more magic, and still requires a logout/login plus manual `gnome-extensions enable`, so the packaging approach covers most of the friction with less complexity.
- Publish to extensions.gnome.org — desirable long-term but has its own review/versioning process independent of this packaging fix.
### Related area(s)
- [x] Per-application profiles
- [x] Other (Linux packaging)
### Additional context
- Extension source: `crates/openlogi-hook/gnome-shell-extension/openlogi-frontmost@openlogi.dev/`
- Current manual install docs: `crates/openlogi-hook/gnome-shell-extension/README.md`
- Packaging descriptor: `packaging/linux/nfpm.yaml`
- Originating PR: #191
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with packaging/linux/nfpm.yaml and inspect its existing contents entries, then read crates/openlogi-hook/gnome-shell-extension/README.md and the Linux install docs. Package the extension at the specified system-wide path and update the documentation to cover enabling it and logging out/in; verify the package includes the extension files.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, yaml
- Domain
- build-system, documentation
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100