<- Back | |
# Sfeed_curses: a curses UI front-end for sfeed | |
Last modification on 2022-05-08 | |
sfeed_curses is a curses UI front-end for »sfeed«. | |
It is now part of sfeed. | |
It shows the TAB-separated feed items in a graphical command-line UI. The | |
interface has a look inspired by the »mutt mail client«. It has a sidebar | |
panel for the feeds, a panel with a listing of the items and a small statusbar | |
for the selected item/URL. Some functions like searching and scrolling are | |
integrated in the interface itself. | |
## Features | |
* Relatively few LOC, about 2.5K lines of C. | |
* Few dependencies: a C compiler and a curses library (typically ncurses). | |
It also requires a terminal (emulator) supporting UTF-8. | |
* Easy to customize by modifying the small source-code and shellscripts. | |
* Quite fast. | |
* Plumb support: open the URL or an enclosure URL directly with any program. | |
* Pipe support: pipe the selected Tab-Separated Value line to a program for | |
scripting purposes. Like viewing the content in any way you like. | |
* Yank support: copy the URL or an enclosure URL to the clipboard. | |
* Familiar keybinds: supports both vi-like, emacs-like and arrow keys for | |
actions. | |
* Mouse support: it supports xterm X10 and extended SGR encoding. | |
* Support two ways of managing read/unread items. | |
By default sfeed_curses marks the feed items of the last day as new/bold. | |
Alternatively a simple plain-text list with the read URLs can be used. | |
* UI layouts: supports vertical, horizontal and monocle (full-screen) layouts. | |
Useful for different kind of screen sizes. | |
* Auto-execute keybind commands at startup to automate setting a preferred | |
layout, toggle showing new items or other actions. | |
Like the format programs included in sfeed you can run it by giving the feed | |
files as arguments like this: | |
sfeed_curses ~/.sfeed/feeds/* | |
... or by reading directly from stdin: | |
sfeed_curses < ~/.sfeed/feeds/xkcd | |
It will show a sidebar if one or more files are specified as parameters. It | |
will not show the sidebar by default when reading from stdin. | |
Screenshot showing what the UI looks | |
On pressing the 'o' or ENTER keybind it will open the link URL of an item with | |
the plumb program. On pressing the 'a', 'e' or '@' keybind it will open the | |
enclosure URL if there is one. The default plumb program is set to »xdg-open�… | |
but can be modified by setting the environment variable $SFEED_PLUMBER. The | |
plumb program receives the URL as a command-line argument. | |
The TAB-Separated-Value line of the current selected item in the feed file can | |
be piped to a program by pressing the 'c', 'p' or '|' keybind. This allows much | |
flexibility to make a content formatter or write other custom actions or views. | |
This line is in the exact same format as described in the sfeed(5) man page. | |
The pipe program can be changed by setting the environment variable | |
$SFEED_PIPER. | |
Screenshot showing the output of the pipe content script | |
The above screenshot shows the included »sfeed_content« shellscript which uses | |
the »lynx text-browser« to convert HTML to plain-text. It pipes the formatted | |
plain-text to the user $PAGER (or "less"). | |
Of course the script can be easily changed to use a different browser or | |
HTML-to-text converter like: | |
* dillo | |
* links | |
* w3m | |
* webdump | |
It's easy to modify the color-theme by changing the macros in the source-code | |
or set a predefined theme at compile-time. The README file contains information | |
how to set a theme. On the left a »TempleOS«-like color-theme on the right a | |
»newsboat«-like colorscheme. | |
Screenshot showing a custom colorscheme | |
It supports a vertical layout, horizontal and monocle (full-screen) layout. | |
This can be useful for different kind of screen sizes. The keybinds '1', '2' | |
and '3' can be used to switch between these layouts. | |
Screenshot showing the horizontal layout | |
## Clone | |
git clone git://git.codemadness.org/sfeed | |
## Browse | |
You can browse the source-code at: | |
* https://git.codemadness.org/sfeed/ | |
* gopher://codemadness.org/1/git/sfeed | |
## Download releases | |
Releases are available at: | |
* https://codemadness.org/releases/sfeed/ | |
* gopher://codemadness.org/1/releases/sfeed | |
## Build and install | |
$ make | |
# make install |