iREADME - sfeed_curses - sfeed curses UI (now part of sfeed, development is in sfeed) Err codemadness.org 70 hgit clone git://git.codemadness.org/sfeed_curses URL:git://git.codemadness.org/sfeed_curses codemadness.org 70 1Log /git/sfeed_curses/log.gph codemadness.org 70 1Files /git/sfeed_curses/files.gph codemadness.org 70 1Refs /git/sfeed_curses/refs.gph codemadness.org 70 1README /git/sfeed_curses/file/README.gph codemadness.org 70 1LICENSE /git/sfeed_curses/file/LICENSE.gph codemadness.org 70 i--- Err codemadness.org 70 iREADME (4584B) Err codemadness.org 70 i--- Err codemadness.org 70 i 1 sfeed_curses Err codemadness.org 70 i 2 ------------ Err codemadness.org 70 i 3 Err codemadness.org 70 i 4 sfeed_curses is a curses UI front-end for sfeed. Err codemadness.org 70 i 5 Err codemadness.org 70 i 6 It shows the TAB-separated feed items in a graphical command-line UI. The Err codemadness.org 70 i 7 interface has a look inspired by the mutt mail client. It has a sidebar panel Err codemadness.org 70 i 8 for the feeds, a panel with a listing of the items and a small statusbar for Err codemadness.org 70 i 9 the selected item/URL. Some functions like searching and scrolling are Err codemadness.org 70 i 10 integrated in the interface itself. Err codemadness.org 70 i 11 Err codemadness.org 70 i 12 Err codemadness.org 70 i 13 Build and install Err codemadness.org 70 i 14 ----------------- Err codemadness.org 70 i 15 Err codemadness.org 70 i 16 $ make Err codemadness.org 70 i 17 # make install Err codemadness.org 70 i 18 Err codemadness.org 70 i 19 Err codemadness.org 70 i 20 Usage Err codemadness.org 70 i 21 ----- Err codemadness.org 70 i 22 Err codemadness.org 70 i 23 Like the format programs included in sfeed you can run it like this: Err codemadness.org 70 i 24 Err codemadness.org 70 i 25 sfeed_curses ~/.sfeed/feeds/* Err codemadness.org 70 i 26 Err codemadness.org 70 i 27 ... or by reading from stdin: Err codemadness.org 70 i 28 Err codemadness.org 70 i 29 sfeed_curses < ~/.sfeed/feeds/xkcd Err codemadness.org 70 i 30 Err codemadness.org 70 i 31 By default sfeed_curses marks the items of the last day as new/bold. To manage Err codemadness.org 70 i 32 read/unread items in a different way a plain-text file with a list of the read Err codemadness.org 70 i 33 URLs can be used. To enable this behaviour the path to this file can be Err codemadness.org 70 i 34 specified by setting the environment variable $SFEED_URL_FILE to the URL file: Err codemadness.org 70 i 35 Err codemadness.org 70 i 36 export SFEED_URL_FILE="$HOME/.sfeed/urls" Err codemadness.org 70 i 37 [ -f "$SFEED_URL_FILE" ] || touch "$SFEED_URL_FILE" Err codemadness.org 70 i 38 sfeed_curses ~/.sfeed/feeds/* Err codemadness.org 70 i 39 Err codemadness.org 70 i 40 There is a shellscript "sfeed_markread" to process the read and unread items. Err codemadness.org 70 i 41 See the man page for more detailed information. Err codemadness.org 70 i 42 Err codemadness.org 70 i 43 Err codemadness.org 70 i 44 Dependencies Err codemadness.org 70 i 45 ------------ Err codemadness.org 70 i 46 Err codemadness.org 70 i 47 - C compiler (C99). Err codemadness.org 70 i 48 - libc (recommended: C99 and POSIX >= 200809). Err codemadness.org 70 i 49 - curses (typically ncurses), optional but recommended: but see minicurses.h. Err codemadness.org 70 i 50 Err codemadness.org 70 i 51 Err codemadness.org 70 i 52 Optional dependencies Err codemadness.org 70 i 53 --------------------- Err codemadness.org 70 i 54 Err codemadness.org 70 i 55 - POSIX make(1) for Makefile. Err codemadness.org 70 i 56 - mandoc for documentation: https://mdocml.bsd.lv/ Err codemadness.org 70 i 57 Err codemadness.org 70 i 58 Err codemadness.org 70 i 59 Run-time dependencies Err codemadness.org 70 i 60 --------------------- Err codemadness.org 70 i 61 Err codemadness.org 70 i 62 - A (POSIX) shell. Err codemadness.org 70 i 63 - A terminal (emulator) supporting UTF-8 and the used capabilities. Err codemadness.org 70 i 64 Err codemadness.org 70 i 65 Err codemadness.org 70 i 66 Optional run-time dependencies Err codemadness.org 70 i 67 ------------------------------ Err codemadness.org 70 i 68 Err codemadness.org 70 i 69 - xclip for yanking the URL or enclosure. See $SFEED_YANKER to change it. Err codemadness.org 70 i 70 - xdg-open, used as a plumber by default. See $SFEED_PLUMBER to change it. Err codemadness.org 70 i 71 - awk, used by the sfeed_content and sfeed_markread script. Err codemadness.org 70 i 72 See the ENVIRONMENT VARIABLES section in the man page to change it. Err codemadness.org 70 i 73 - lynx, used by the sfeed_content script to convert HTML content. Err codemadness.org 70 i 74 See the ENVIRONMENT VARIABLES section in the man page to change it. Err codemadness.org 70 i 75 Err codemadness.org 70 i 76 Err codemadness.org 70 i 77 OS tested Err codemadness.org 70 i 78 --------- Err codemadness.org 70 i 79 Err codemadness.org 70 i 80 - Linux (compilers: clang, gcc, tcc, libc: glibc, musl). Err codemadness.org 70 i 81 - OpenBSD (clang, gcc). Err codemadness.org 70 i 82 - NetBSD Err codemadness.org 70 i 83 - FreeBSD Err codemadness.org 70 i 84 - DragonFlyBSD Err codemadness.org 70 i 85 - Illumos (OpenIndiana). Err codemadness.org 70 i 86 - Windows (cygwin gcc + mintty). Err codemadness.org 70 i 87 - HaikuOS Err codemadness.org 70 i 88 Err codemadness.org 70 i 89 Err codemadness.org 70 i 90 Known terminal issues Err codemadness.org 70 i 91 --------------------- Err codemadness.org 70 i 92 Err codemadness.org 70 i 93 Below lists some bugs or missing features in terminals that are found while Err codemadness.org 70 i 94 testing. Some of them might be fixed already upstream: Err codemadness.org 70 i 95 Err codemadness.org 70 i 96 - cygwin + mintty: the xterm mouse-encoding of the mouse position is broken for Err codemadness.org 70 i 97 scrolling. Err codemadness.org 70 i 98 - HaikuOS terminal: the xterm mouse-encoding of the mouse button number of the Err codemadness.org 70 i 99 middle-button, right-button is incorrect / reversed. Err codemadness.org 70 i 100 - putty: the full reset attribute (ESC c, typically `rs1`) does not reset the Err codemadness.org 70 i 101 window title. Err codemadness.org 70 i 102 Err codemadness.org 70 i 103 Err codemadness.org 70 i 104 Color themes Err codemadness.org 70 i 105 ------------ Err codemadness.org 70 i 106 Err codemadness.org 70 i 107 To change the default theme you can set SFEED_THEME using make or in the Err codemadness.org 70 i 108 Makefile or include the a header file in sfeed_curses.c. See also the themes/ Err codemadness.org 70 i 109 directory. Err codemadness.org 70 i 110 Err codemadness.org 70 i 111 Err codemadness.org 70 i 112 Running custom commands inside the program Err codemadness.org 70 i 113 ------------------------------------------ Err codemadness.org 70 i 114 Err codemadness.org 70 i 115 Running commands inside the program can be useful for example to sync items or Err codemadness.org 70 i 116 mark all items across all feeds as read. It can be comfortable to have a Err codemadness.org 70 i 117 keybind for this inside the program to perform a scripted action and then Err codemadness.org 70 i 118 reload the feeds by sending the signal SIGHUP. Err codemadness.org 70 i 119 Err codemadness.org 70 i 120 In the input handling code you can then add a case: Err codemadness.org 70 i 121 Err codemadness.org 70 i 122 case 'M': Err codemadness.org 70 i 123 forkexec((char *[]) { "markallread.sh", NULL }, 0); Err codemadness.org 70 i 124 break; Err codemadness.org 70 i 125 Err codemadness.org 70 i 126 or Err codemadness.org 70 i 127 Err codemadness.org 70 i 128 case 'S': Err codemadness.org 70 i 129 forkexec((char *[]) { "syncnews.sh", NULL }, 1); Err codemadness.org 70 i 130 break; Err codemadness.org 70 i 131 Err codemadness.org 70 i 132 The specified script should be in $PATH or an absolute path. Err codemadness.org 70 i 133 Err codemadness.org 70 i 134 Example of a `markallread.sh` shellscript to mark all URLs as read: Err codemadness.org 70 i 135 Err codemadness.org 70 i 136 #!/bin/sh Err codemadness.org 70 i 137 # mark all items/URLs as read. Err codemadness.org 70 i 138 Err codemadness.org 70 i 139 tmp=$(mktemp) Err codemadness.org 70 i 140 (cat ~/.sfeed/urls; cut -f 3 ~/.sfeed/feeds/*) | \ Err codemadness.org 70 i 141 awk '!x[$0]++' > "$tmp" && Err codemadness.org 70 i 142 mv "$tmp" ~/.sfeed/urls && Err codemadness.org 70 i 143 pkill -SIGHUP sfeed_curses # reload feeds. Err codemadness.org 70 i 144 Err codemadness.org 70 i 145 Example of a `syncnews.sh` shellscript to update the feeds and reload them: Err codemadness.org 70 i 146 Err codemadness.org 70 i 147 #!/bin/sh Err codemadness.org 70 i 148 sfeed_update && pkill -SIGHUP sfeed_curses Err codemadness.org 70 i 149 Err codemadness.org 70 i 150 Err codemadness.org 70 i 151 Open an URL directly in the same terminal Err codemadness.org 70 i 152 ----------------------------------------- Err codemadness.org 70 i 153 Err codemadness.org 70 i 154 To open an URL directly in the same terminal using the text-mode lynx browser: Err codemadness.org 70 i 155 Err codemadness.org 70 i 156 SFEED_PLUMBER=lynx SFEED_PLUMBER_INTERACTIVE=1 sfeed_curses ~/.sfeed/feeds/* Err codemadness.org 70 i 157 Err codemadness.org 70 i 158 Err codemadness.org 70 i 159 Yank to tmux buffer Err codemadness.org 70 i 160 ------------------- Err codemadness.org 70 i 161 Err codemadness.org 70 i 162 This changes the yank command to set the tmux buffer, instead of X11 xclip: Err codemadness.org 70 i 163 Err codemadness.org 70 i 164 SFEED_YANKER="tmux set-buffer \`cat\`" Err codemadness.org 70 i 165 Err codemadness.org 70 i 166 Err codemadness.org 70 i 167 License Err codemadness.org 70 i 168 ------- Err codemadness.org 70 i 169 Err codemadness.org 70 i 170 ISC, see LICENSE file. Err codemadness.org 70 i 171 Err codemadness.org 70 i 172 Err codemadness.org 70 i 173 Author Err codemadness.org 70 i 174 ------ Err codemadness.org 70 i 175 Err codemadness.org 70 i 176 Hiltjo Posthuma Err codemadness.org 70 .