AprilNEA / AprilNEA/OpenLogi

[Feature]: Package the GNOME Shell frontmost-window extension via nfpm

Open Beginner friendly
#555 1 comment 0 reactions 0 assignees View on GitHub
platform: linux type: feature
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.