diff --git a/modules/universal/env/feeds.nix b/modules/universal/env/feeds.nix
index 9d546301..031e70f3 100644
--- a/modules/universal/env/feeds.nix
+++ b/modules/universal/env/feeds.nix
@@ -3,6 +3,7 @@
with lib;
{
options = {
+ # TODO: fold this into RSS, with an `audio` category
sane.feeds.podcastUrls = mkOption {
type = types.listOf types.str;
default = [
diff --git a/modules/universal/env/home-manager.nix b/modules/universal/env/home-manager.nix
index a0181d81..bfbcaa79 100644
--- a/modules/universal/env/home-manager.nix
+++ b/modules/universal/env/home-manager.nix
@@ -214,6 +214,7 @@ in
[qt]
qt-privacy-ask=0
'';
+
xdg.configFile."gpodderFeeds.opml".text =
let
entries = builtins.toString (builtins.map
@@ -228,6 +229,40 @@ in
'';
+ # news-flash RSS viewer
+ xdg.configFile."newsflashFeeds.opml".text =
+ let
+ entries = sysconfig.sane.feeds.rss;
+ urlsForCat = cat: builtins.filter (rss: builtins.elem cat entries."${rss}".tags) (builtins.attrNames entries);
+ outlineEntriesFor = cat: builtins.map (rss: ''
+
+ '') (urlsForCat cat);
+ outlineFor = cat: let
+ outlines = outlineEntriesFor cat;
+ in ''
+
+ ${builtins.toString outlines}
+
+ '';
+ outlines = [
+ (outlineFor "uncat")
+ (outlineFor "rat")
+ (outlineFor "tech")
+ (outlineFor "pol")
+ (outlineFor "visual")
+ ];
+ in ''
+
+
+
+ NewsFlash OPML export
+
+
+ ${builtins.toString outlines}
+
+
+ '';
+
# gnome feeds RSS viewer
xdg.configFile."org.gabmus.gfeeds.json".text = builtins.toJSON {