Dank News RSS & Ticker (v2)
September 7, 2026 · View on GitHub
RSS and Atom feeds for DankMaterialShell, three ways: a desktop card, a full-width scrolling ticker bar, and an optional in-bar pill.
Fork of
BrendonJL/dms-rss-widgetby @Xn4m3d. v1 was BrendonJL's desktop RSS widget — all credit for the original goes to him. v2 keeps the desktop card and adds a scrolling ticker bar (overlay) plus an optional bar pill companion, on top of a set of fixes and security hardening (the core fixes were also offered back upstream as PRs). Same MIT license.
What's in this repo
Two DMS plugins:
| Folder | Plugin | What it is |
|---|---|---|
dankNewsRssTicker/ | Dank News RSS & Ticker (desktop) | The desktop card and the full-width scrolling ticker bar (overlay) |
dankNewsRssTickerPill/ | Dank News RSS & Ticker Pill (widget) | A small scrolling pill inside the DankBar, reading the same feeds |
Only one ticker can be active at a time (the desktop overlay or the bar pill) — enabling one automatically disables the other.
Features
Desktop card
- RSS 2.0 and Atom with auto-detection, configurable refresh interval (5 min – 24 h)
- Add/edit/remove feeds, OPML import, quick-add presets (US/global news, tech, Reddit)
- Sort modes (newest / oldest / grouped by feed), compact & expanded views, thumbnails
- Read/unread tracking with mark-all, new-item toast notifications, per-source filter tags
- Optional Name label, appearance customization (font size, background opacity, borders)
- Settings organized in 3 tabs: General / Card / Ticker bar
Ticker bar — overlay (new in v2)
- Full-width scrolling headlines; reuses the card's in-memory items (no extra fetching)
- Adapts to the main bar's position (see below): docks under a top bar, follows a bottom bar (docks just above it), or — for a vertical (left/right) bar — sits at the top with its width reduced to the space beside the bar
- Docks to a screen edge (reserves space, foreground) or floats in between (behind windows), with a magnet snap to the edges while dragging
- Right-click-and-drag to move it; drag the right edge to resize the width (snaps back to full); scroll while holding right-click to tune the background opacity; press S to toggle 100%/50%
- Tunable width, horizontal position, vertical offset (when docked), height, corner radius, border, fonts, scroll speed, item spacing; option to show/hide while the compositor overview is open
- Latest-N items or per-source round-robin; click a headline to open it; pause on hover
Main bar position
The ticker stays consistent with where you put your DankBar:
| Main bar | Ticker bar |
|---|---|
| Top | docks just under it (reserves space) |
| Bottom | follows it — docks just above it (reserves space) |
| Left / Right (vertical) | docks at the top or bottom of the screen, width reduced to the area beside the bar — and reserves just that strip (the vertical bar keeps its full height, no corner gap); the pill mode is disabled |
Moving the bar — even live, from the DankBar settings — re-settles the ticker automatically: it follows to the new edge without overlapping or shoving the bar around.
Multi-bar setups: the ticker positions itself relative to the first bar config only; extra bars (a second bar on another edge or monitor) aren't accounted for yet. Open an issue if you need it.
Bar pill — companion (new in v2)
- The same scrolling headlines as a compact widget inside the DankBar (horizontal bars only — it's automatically disabled when the main bar is vertical)
- Mutually exclusive with the desktop overlay, with shortcut buttons to jump between the two settings pages
Hardening & fixes (also offered upstream)
- 🔒 Hardened
curl(http/https only, bounded redirects & response size, ReDoS-capped parsing,isSafeUrl()allowlist for opened links & thumbnails) - 🩹 No blank flash on resize/recreate · 🖱️ ignores stray Niri-overview clicks · 💾 item cache for instant redraw
Installation
Clone the repo and symlink each plugin you want into your DMS plugins directory:
git clone https://github.com/Xn4m3d/dms-rss-widget.git
cd dms-rss-widget
# the desktop card + ticker bar (required):
ln -s "$PWD/dankNewsRssTicker" ~/.config/DankMaterialShell/plugins/dankNewsRssTicker
# optional — the in-bar pill companion:
ln -s "$PWD/dankNewsRssTickerPill" ~/.config/DankMaterialShell/plugins/dankNewsRssTickerPill
Reload DMS (Ctrl+Shift+R) or restart your compositor. To use the pill, add it to a bar section via Bar → Widgets (Left, Center or Right Section), then set Scrolling headlines to In the bar (pill) in either plugin's settings.
Configuration
Open Settings → Desktop Widgets → Dank News RSS & Ticker and use the tabs:
- General — add feeds (or quick-add presets / OPML), refresh interval, max items, sort order, notifications
- Card — name label, view mode, font size, background opacity, borders
- Ticker bar — width/position, height, opacity, corners, border, fonts, item mode
Where the headlines scroll is a single choice — Off, On the desktop (ticker bar) or
In the bar (pill) — shown identically in both panels, alongside a separate switch for the
desktop card's visibility. Only one location can be active at a time.
The pill's own appearance (width, speed, separator, source label, pause on hover) lives in Settings → Plugins → Dank News RSS & Ticker Pill.
Requirements
- DankMaterialShell >= 1.2.0
curl(used for fetching feeds)
Testing
The core feed-parsing logic is mirrored in a standalone JS module
(dankNewsRssTicker/feed-parser-tests/feed-parser.js) so it can be unit-tested with Node.js without the QML runtime.
node --test dankNewsRssTicker/feed-parser-tests/feed-parser.test.js
Requires Node.js 18+ (uses the built-in node:test runner). 76 tests across 13 suites cover tag
extraction, CDATA, HTML entity decoding, RSS/Atom parsing, root-element routing, namespace-prefixed
Atom, image extraction, relative timestamps and OPML import.
Screenshots





License
MIT — the original work is © @BrendonJL and contributors (see the upstream repository). Changes in this fork are released under the same MIT license.