umgeher's changelog

sfeed

sfeed-news v1.1.0

changelog

  • using $BROWSER env variable
  • news is reading $1 argument as a filter, example: news "r\/openbsd"
git clone https://git.sr.ht/~umgeher/sfeed-news

Homepage.

sfeed

Years using newsboat without any issue at all, but in the past two OpenBSD’s releases I saw some errors and ui lag. I want something fast and simple and I found! Sfeed!

Sfeed is an Atom/RSS parser. Has a simple (but useful) TUI1, a fetch solution to update yours feeds and a group of data transformation utils. You can choose your output as HTML, plain text, gopher, mbox and others.

The Sfeed’s webpage has an useful example to integrate it to dmenu.

Setup

You need to populate your feed’s urls in sfeedrc file, so create the sfeed’s directory in yours $HOME.

mkdir -p ~/.sfeed

Create the sfeedrc in that directory. You can use my sfeedrc as example:

feeds() {
    feed "xkcd" "https://xkcd.com/atom.xml" "https://xkcd.com"
    feed "unixporn" "https://www.reddit.com/r/unixporn/.rss"
    feed "openbsd" "https://www.reddit.com/r/openbsd/.rss"
    feed "plan9" "https://www.reddit.com/r/plan9/.rss"
    feed "monero" "https://www.reddit.com/r/monero/.rss"
    feed "erlang" "https://www.reddit.com/r/erlang/.rss"
    feed "luke's videos" "https://videos.lukesmith.xyz/feeds/videos.xml?sort=-publishedAt&filter=local"
    feed "luke's blog" "https://lukesmith.xyz/rss.xml"
    feed "drew devault" "https://drewdevault.com/blog/index.xml"
    feed "lucas moreira" "https://lucasemmoreira.xyz/rss.xml"
    feed "solene" "https://dataswamp.org/~solene/rss.xml"
    feed "christine" "https://christine.website/blog.rss"
    feed "openbsd zine" "https://webzine.puffy.cafe/atom.xml"
}

In a nutshell, it’s a function called feeds, in this function you need to set each feed as:

feed <name> <feedurl>

Where and are the feed’s name and rss/atom url respectively.

Now you can run sfeed_update in your shell. And done, you have yours feeds downloaded and ready to read.

Want to use the curse solution? Sure, just type:

sfeed_curses ~/.sfeed/feeds/*

Maybe, you want to try the sfeed’s official example:

#!/bin/sh
url=$(sfeed_plain "$HOME/.sfeed/feeds/"* | dmenu -l 35 -i | \
	sed -n 's@^.* \([a-zA-Z]*://\)\(.*\)$@\1\2@p')
test -n "${url}" && $BROWSER "${url}"

Or if you want to use in my way…

sfeeds-news

I created two small scripts to manage what I already read and what is unread yet.

You can clone the repository with:

git clone https://git.sr.ht/~umgeher/sfeed-news

There are two scripts in that repository, news and news-update. I use news-update to update my feeds and news to show them. Ah, I use rofi, not dmenu.

Here a screen-shot of the final result:

sfeed and rofi


  1. TUI: text-based user interface ↩︎