A modern GNOME Shell RSS reader for the top bar. Follow news from your favorite RSS, Atom, and RDF feeds directly from the panel. Featuring two layout modes, desktop notifications, an unread badge, and a fully editable feed list. Features: - OPML import and export, so you can bring your subscriptions over from another reader - Classic and Minimal layout - Desktop notifications for new articles (lock screen optional, grouped by source on GNOME 48+) - Panel unread badge, with mark as read function - Notifications Only/Widget Only/Both mode select - Light and Dark themes support, with system accent color (GNOME 47+) - Feed management with drag-n-drop, custom feed title and avatar - Per-feed mute notifications - Automatic retries for feeds that fail, with a failed counter in the menu header - Copy URL action in notifications, or right click on article - Full keyboard navigation of the panel menu - Configurable refresh and article limit - Feed aggregator for RSS, Atom, RDF and FeedBurner format, with multi-charset support - Persistent read state across shell restarts Extension writes to clipboard only when the user explicitly requests to copy a feed article URL.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
ui/classic/articleItem.js:62
St.Clipboard.get_default()
ui/minimal/articleItem.js:54
St.Clipboard.get_default()
ui/notificationManager.js:149
St.Clipboard.get_default()
| Version | Status |
|---|---|
| 9.0 (10) | Active |
| 8.1 (9) | Inactive |
| 8 | Rejected |
| 7 | Inactive |
| 6 | Active |
| 5 | Inactive |
| 4 | Inactive |
| 3 | Inactive |
| 2 | Inactive |
| 1 | Inactive |
Hi this release is a larger internal rework, so I write you a short overview of the new structure: - extension.js is now a thin entry point that wires the components together. - data/ contains the model layer: feed store, sources and items, polling, merge logic, persistence of read state and notification policy, all UI-independent. - parsers/ holds the feed format parsers (RSS, Atom, RDF, Feedburner) built on top of the bundled tXml. Mostly unchanged. - lib/ contains one third-party file, tXml (fast XML parser), a replacement for the old REXML parser. - ui/ is the view layer: panel indicator, Classic and Minimal menu layouts and the notification manager, it only renders what the data layer provides. - prefs/ is the preferences window split into one file per page. - icons/ and schemas/ hold the symbolic icons and the GSettings schema. Root files are small shared helpers: http.js (Soup 3 wrapper), encoder.js, misc.js, gskeys.js. User-visible behavior is mostly unchanged, the rework targets performance (parsing and rendering should no longer block the main loop) and data/UI separation.
1. While `Gio.app_info_launch_default_for_uri()` throws, you don't need to wrap it with try-catch. Even GNOME Shell doesn't use try-catch for that. 2. Timeout should be removed on destroy (line 120 `data/feedRepository.js`): [EGO Review Guidelines: Timeout](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#remove-main-loop-sources)