| <- Back | |
| # Sfeed_curses: a curses UI front-end for sfeed | |
| Last modification on 2025-07-24 | |
| 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) which supports UTF-8. | |
| * xterm-compatible shim »minicurses.h« | |
| * Easy to customize by modifying the small source-code and shellscripts. | |
| * 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 |