48 lines
1.8 KiB
Nix
48 lines
1.8 KiB
Nix
# news-flash RSS viewer (exe: `io.gitlab.news_flash.NewsFlash`)
|
|
# - feeds have to be manually imported:
|
|
# - Local RSS -> Import OPML -> ~/.config/newsflashFeeds.opml
|
|
# option may be greyed out on first run: just restart it.
|
|
# takes about 20 minutes to import results from scratch.
|
|
# TODO: auto-import feeds
|
|
# - `newsflash -s` might allow importing individual feeds; not removing them, though
|
|
{ config, sane-lib, ... }:
|
|
|
|
let
|
|
feeds = sane-lib.feeds;
|
|
all-feeds = config.sane.feeds;
|
|
# text/image: newsflash renders these natively
|
|
# podcast/video: newsflash dispatches these to xdg-open
|
|
wanted-feeds = feeds.filterByFormat [ "text" "image" "podcast" "video" ] all-feeds;
|
|
in {
|
|
sane.programs.newsflash = {
|
|
sandbox.method = "bunpen";
|
|
sandbox.net = "clearnet";
|
|
sandbox.whitelistAudio = true; #< for embedded videos
|
|
sandbox.whitelistDbus = [ "user" ];
|
|
sandbox.whitelistDri = true;
|
|
sandbox.whitelistWayland = true;
|
|
sandbox.extraPaths = [
|
|
# the app sandboxes itself with bwrap, which needs these.
|
|
# but it actually only cares that /sys/{block,bus,class/block} *exist*: it doesn't care if there's anything in them.
|
|
# so bind empty (sub)directories
|
|
"/sys/block/loop7"
|
|
"/sys/bus/container/devices"
|
|
"/sys/class/block/loop7"
|
|
];
|
|
|
|
buildCost = 2; # mainly for desktop: webkitgtk-6.0
|
|
persist.byStore.plaintext = [
|
|
".local/share/news-flash" #< sqlite database, the actually important stuff
|
|
# ".local/share/news_flash" #< device IDs (?)
|
|
".config/news-flash" #< includes `"backend": "local_rss"`
|
|
];
|
|
persist.byStore.ephemeral = [
|
|
".cache/news_flash" #< WebKit cache
|
|
];
|
|
#v for *manual* use:
|
|
fs.".config/newsflashFeeds.opml".symlink.text =
|
|
feeds.feedsToOpml wanted-feeds
|
|
;
|
|
};
|
|
}
|