diff --git a/modules/universal/env/default.nix b/modules/universal/env/default.nix index 0b9c893a2..e59d26576 100644 --- a/modules/universal/env/default.nix +++ b/modules/universal/env/default.nix @@ -2,7 +2,6 @@ { imports = [ - ./feeds.nix ./home-manager.nix ./home-packages.nix ./system-packages.nix diff --git a/modules/universal/env/feeds.nix b/modules/universal/env/feeds.nix index 96cefea6d..2717e57b9 100644 --- a/modules/universal/env/feeds.nix +++ b/modules/universal/env/feeds.nix @@ -1,131 +1,121 @@ -{ lib, ... }: - -with lib; { - options = { - # TODO: fold this into RSS, with an `audio` category - sane.feeds.podcastUrls = mkOption { - type = types.listOf types.str; - default = [ - "https://lexfridman.com/feed/podcast/" - ## Astral Codex Ten - "http://feeds.libsyn.com/108018/rss" - ## Econ Talk - "https://feeds.simplecast.com/wgl4xEgL" - ## Cory Doctorow - "https://feeds.feedburner.com/doctorow_podcast" - "https://congressionaldish.libsyn.com/rss" - ## Civboot - "https://anchor.fm/s/34c7232c/podcast/rss" - "https://feeds.feedburner.com/80000HoursPodcast" - "https://allinchamathjason.libsyn.com/rss" - "https://acquired.libsyn.com/rss" - "https://rss.acast.com/deconstructed" - ## The Daily - "https://feeds.simplecast.com/54nAGcIl" - "https://rss.acast.com/intercepted-with-jeremy-scahill" - "https://podcast.posttv.com/itunes/post-reports.xml" - ## Eric Weinstein - "https://rss.art19.com/the-portal" - "https://feeds.megaphone.fm/darknetdiaries" - "http://feeds.wnyc.org/radiolab" - "https://wakingup.libsyn.com/rss" - ## 99% Invisible - "https://feeds.simplecast.com/BqbsxVfO" - "https://rss.acast.com/ft-tech-tonic" - "https://feeds.feedburner.com/dancarlin/history?format=xml" - ## 60 minutes (NB: this features more than *just* audio?) - "https://www.cbsnews.com/latest/rss/60-minutes" - ]; - }; + # TODO: fold this into RSS, with an `audio` category + podcastUrls = [ + "https://lexfridman.com/feed/podcast/" + ## Astral Codex Ten + "http://feeds.libsyn.com/108018/rss" + ## Econ Talk + "https://feeds.simplecast.com/wgl4xEgL" + ## Cory Doctorow + "https://feeds.feedburner.com/doctorow_podcast" + "https://congressionaldish.libsyn.com/rss" + ## Civboot + "https://anchor.fm/s/34c7232c/podcast/rss" + "https://feeds.feedburner.com/80000HoursPodcast" + "https://allinchamathjason.libsyn.com/rss" + "https://acquired.libsyn.com/rss" + "https://rss.acast.com/deconstructed" + ## The Daily + "https://feeds.simplecast.com/54nAGcIl" + "https://rss.acast.com/intercepted-with-jeremy-scahill" + "https://podcast.posttv.com/itunes/post-reports.xml" + ## Eric Weinstein + "https://rss.art19.com/the-portal" + "https://feeds.megaphone.fm/darknetdiaries" + "http://feeds.wnyc.org/radiolab" + "https://wakingup.libsyn.com/rss" + ## 99% Invisible + "https://feeds.simplecast.com/BqbsxVfO" + "https://rss.acast.com/ft-tech-tonic" + "https://feeds.feedburner.com/dancarlin/history?format=xml" + ## 60 minutes (NB: this features more than *just* audio?) + "https://www.cbsnews.com/latest/rss/60-minutes" + ]; - sane.feeds.rss = mkOption { - type = types.attrs; - default = let - hourly = { freq = "hourly"; }; - daily = { freq = "daily"; }; - weekly = { freq = "weekly"; }; - infrequent = { freq = "infrequent"; }; - rat = { cat = "rat"; }; - tech = { cat = "tech"; }; - pol = { cat = "pol"; }; - uncat = { cat = "uncat"; }; - visual = { cat = "visual"; }; - in { - # AGGREGATORS (> 1 post/day) - "https://www.lesswrong.com/feed.xml" = rat // hourly; - "http://www.econlib.org/index.xml" = pol // hourly; + rss = + let + hourly = { freq = "hourly"; }; + daily = { freq = "daily"; }; + weekly = { freq = "weekly"; }; + infrequent = { freq = "infrequent"; }; + rat = { cat = "rat"; }; + tech = { cat = "tech"; }; + pol = { cat = "pol"; }; + uncat = { cat = "uncat"; }; + visual = { cat = "visual"; }; + in { + # AGGREGATORS (> 1 post/day) + "https://www.lesswrong.com/feed.xml" = rat // hourly; + "http://www.econlib.org/index.xml" = pol // hourly; - # AGGREGATORS (< 1 post/day) - "https://palladiummag.com/feed" = uncat // weekly; - "https://profectusmag.com/feed" = uncat // weekly; - "https://semiaccurate.com/feed" = tech // weekly; - "https://linuxphoneapps.org/blog/atom.xml" = tech // infrequent; - "https://spectrum.ieee.org/rss" = tech // weekly; + # AGGREGATORS (< 1 post/day) + "https://palladiummag.com/feed" = uncat // weekly; + "https://profectusmag.com/feed" = uncat // weekly; + "https://semiaccurate.com/feed" = tech // weekly; + "https://linuxphoneapps.org/blog/atom.xml" = tech // infrequent; + "https://spectrum.ieee.org/rss" = tech // weekly; - ## No Moods, Ads or Cutesy Fucking Icons - "https://www.rifters.com/crawl/?feed=rss2" = uncat // weekly; + ## No Moods, Ads or Cutesy Fucking Icons + "https://www.rifters.com/crawl/?feed=rss2" = uncat // weekly; - # DEVELOPERS - "https://mg.lol/blog/rss/" = infrequent // tech; - ## Ken Shirriff - "https://www.righto.com/feeds/posts/default" = tech // infrequent; - ## Vitalik Buterin - "https://vitalik.ca/feed.xml" = tech // infrequent; - ## ian (Sanctuary) - "https://sagacioussuricata.com/feed.xml" = tech // infrequent; - ## Bunnie Juang - "https://www.bunniestudios.com/blog/?feed=rss2" = tech // infrequent; - "https://blog.danieljanus.pl/atom.xml" = tech // infrequent; - "https://ianthehenry.com/feed.xml" = tech // infrequent; - "https://bitbashing.io/feed.xml" = tech // infrequent; - "https://idiomdrottning.org/feed.xml" = uncat // daily; + # DEVELOPERS + "https://mg.lol/blog/rss/" = infrequent // tech; + ## Ken Shirriff + "https://www.righto.com/feeds/posts/default" = tech // infrequent; + ## Vitalik Buterin + "https://vitalik.ca/feed.xml" = tech // infrequent; + ## ian (Sanctuary) + "https://sagacioussuricata.com/feed.xml" = tech // infrequent; + ## Bunnie Juang + "https://www.bunniestudios.com/blog/?feed=rss2" = tech // infrequent; + "https://blog.danieljanus.pl/atom.xml" = tech // infrequent; + "https://ianthehenry.com/feed.xml" = tech // infrequent; + "https://bitbashing.io/feed.xml" = tech // infrequent; + "https://idiomdrottning.org/feed.xml" = uncat // daily; - # (TECH; POL) COMMENTATORS - "http://benjaminrosshoffman.com/feed" = pol // weekly; - ## Ben Thompson - "https://www.stratechery.com/rss" = pol // weekly; - ## Balaji - "https://balajis.com/rss" = pol // weekly; - "https://www.ben-evans.com/benedictevans/rss.xml" = pol // weekly; - "https://www.lynalden.com/feed" = pol // infrequent; - "https://austinvernon.site/rss.xml" = tech // infrequent; - "https://oversharing.substack.com/feed" = pol // daily; - "https://doomberg.substack.com/feed" = tech // weekly; - ## David Rosenthal - "https://blog.dshr.org/rss.xml" = pol // weekly; - ## Matt Levine - "https://www.bloomberg.com/opinion/authors/ARbTQlRLRjE/matthew-s-levine.rss" = pol // weekly; + # (TECH; POL) COMMENTATORS + "http://benjaminrosshoffman.com/feed" = pol // weekly; + ## Ben Thompson + "https://www.stratechery.com/rss" = pol // weekly; + ## Balaji + "https://balajis.com/rss" = pol // weekly; + "https://www.ben-evans.com/benedictevans/rss.xml" = pol // weekly; + "https://www.lynalden.com/feed" = pol // infrequent; + "https://austinvernon.site/rss.xml" = tech // infrequent; + "https://oversharing.substack.com/feed" = pol // daily; + "https://doomberg.substack.com/feed" = tech // weekly; + ## David Rosenthal + "https://blog.dshr.org/rss.xml" = pol // weekly; + ## Matt Levine + "https://www.bloomberg.com/opinion/authors/ARbTQlRLRjE/matthew-s-levine.rss" = pol // weekly; - # RATIONALITY/PHILOSOPHY/ETC - "https://samkriss.substack.com/feed" = uncat // infrequent; # ... satire? phil? - "https://unintendedconsequenc.es/feed" = rat // infrequent; - "https://applieddivinitystudies.com/atom.xml" = rat // weekly; - "https://slimemoldtimemold.com/feed.xml" = rat // weekly; - "https://www.richardcarrier.info/feed" = rat // weekly; - "https://www.gwern.net/feed.xml" = uncat // infrequent; - ## Jason Crawford - "https://rootsofprogress.org/feed.xml" = rat // weekly; - ## Robin Hanson - "https://www.overcomingbias.com/feed" = rat // daily; - ## Scott Alexander - "https://astralcodexten.substack.com/feed.xml" = rat // daily; - ## Paul Christiano - "https://sideways-view.com/feed" = rat // infrequent; - ## Sean Carroll - "https://www.preposterousuniverse.com/rss" = rat // infrequent; + # RATIONALITY/PHILOSOPHY/ETC + "https://samkriss.substack.com/feed" = uncat // infrequent; # ... satire? phil? + "https://unintendedconsequenc.es/feed" = rat // infrequent; + "https://applieddivinitystudies.com/atom.xml" = rat // weekly; + "https://slimemoldtimemold.com/feed.xml" = rat // weekly; + "https://www.richardcarrier.info/feed" = rat // weekly; + "https://www.gwern.net/feed.xml" = uncat // infrequent; + ## Jason Crawford + "https://rootsofprogress.org/feed.xml" = rat // weekly; + ## Robin Hanson + "https://www.overcomingbias.com/feed" = rat // daily; + ## Scott Alexander + "https://astralcodexten.substack.com/feed.xml" = rat // daily; + ## Paul Christiano + "https://sideways-view.com/feed" = rat // infrequent; + ## Sean Carroll + "https://www.preposterousuniverse.com/rss" = rat // infrequent; - # COMICS - "https://www.smbc-comics.com/comic/rss" = visual // daily; - "https://xkcd.com/atom.xml" = visual // daily; - "http://dilbert.com/feed" = visual // daily; + # COMICS + "https://www.smbc-comics.com/comic/rss" = visual // daily; + "https://xkcd.com/atom.xml" = visual // daily; + "http://dilbert.com/feed" = visual // daily; - # ART - "https://miniature-calendar.com/feed" = visual // daily; + # ART + "https://miniature-calendar.com/feed" = visual // daily; - # CODE - "https://github.com/Kaiteki-Fedi/Kaiteki/commits/master.atom" = tech // infrequent; - }; - }; + # CODE + "https://github.com/Kaiteki-Fedi/Kaiteki/commits/master.atom" = tech // infrequent; }; } diff --git a/modules/universal/env/home-manager.nix b/modules/universal/env/home-manager.nix index d82161213..dcb21a0de 100644 --- a/modules/universal/env/home-manager.nix +++ b/modules/universal/env/home-manager.nix @@ -17,6 +17,7 @@ let # extract `persist-files` from `extraPackages` persistfileslist = pkgspec: builtins.concatLists (builtins.map (e: if e ? "persist-files" then e.persist-files else []) pkgspec); # TODO: dirlist and persistfileslist should be folded + feeds = import ./feeds.nix; in { options = { @@ -205,7 +206,7 @@ in xdg.configFile."vlc/vlcrc".text = let - podcastUrls = lib.strings.concatStringsSep "|" sysconfig.sane.feeds.podcastUrls; + podcastUrls = lib.strings.concatStringsSep "|" feeds.podcastUrls; in '' [podcast] podcast-urls=${podcastUrls} @@ -219,7 +220,7 @@ in let entries = builtins.toString (builtins.map (url: "\n " + '''') - sysconfig.sane.feeds.podcastUrls + feeds.podcastUrls ); in '' @@ -232,7 +233,7 @@ in # news-flash RSS viewer xdg.configFile."newsflashFeeds.opml".text = let - entries = sysconfig.sane.feeds.rss; + entries = feeds.rss; urlsForCat = cat: builtins.filter (rss: entries."${rss}".cat == cat) (builtins.attrNames entries); outlineEntriesFor = cat: builtins.map (rss: '' @@ -266,7 +267,7 @@ in # gnome feeds RSS viewer xdg.configFile."org.gabmus.gfeeds.json".text = builtins.toJSON { - feeds = builtins.mapAttrs (r: p: { tags = [ p.cat p.freq ]; }) sysconfig.sane.feeds.rss; + feeds = builtins.mapAttrs (r: p: { tags = [ p.cat p.freq ]; }) feeds.rss; dark_reader = false; new_first = true; # windowsize = {