sfeed_curses.1 - sfeed_curses - sfeed curses UI (now part of sfeed, development… | |
git clone git://git.codemadness.org/sfeed_curses | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
sfeed_curses.1 (9815B) | |
--- | |
1 .Dd August 10, 2021 | |
2 .Dt SFEED_CURSES 1 | |
3 .Os | |
4 .Sh NAME | |
5 .Nm sfeed_curses | |
6 .Nd curses UI for viewing feed data | |
7 .Sh SYNOPSIS | |
8 .Nm | |
9 .Op Ar | |
10 .Sh DESCRIPTION | |
11 .Nm | |
12 formats feed data (TSV) from | |
13 .Xr sfeed 1 | |
14 from stdin or for each | |
15 .Ar file | |
16 into a curses UI. | |
17 If one or more | |
18 .Ar file | |
19 arguments are specified then the basename of the | |
20 .Ar file | |
21 is used as the feed name in the output such as the feeds sidebar. | |
22 The | |
23 .Ar file | |
24 arguments are processed and shown in the specified argument order in the… | |
25 sidebar. | |
26 If no | |
27 .Ar file | |
28 arguments are specified then the data is read from stdin and the feed na… | |
29 "stdin" and no sidebar is visible by default in this case. | |
30 .Pp | |
31 Items with a timestamp from the last day compared to the system time at … | |
32 time of loading the feed are marked as new and bold. | |
33 There is also an alternative mode available to mark items as read by mat… | |
34 it against a list of URLs from a plain-text file. | |
35 .Pp | |
36 .Nm | |
37 aligns the output. | |
38 Make sure the environment variable | |
39 .Ev LC_CTYPE | |
40 is set to a UTF-8 locale, so it can determine the proper column-width | |
41 per rune, using | |
42 .Xr mbtowc 3 | |
43 and | |
44 .Xr wcwidth 3 . | |
45 .Sh KEYBINDS | |
46 .Bl -tag -width Ds | |
47 .It k, ARROW UP | |
48 Go one row up. | |
49 .It j, ARROW DOWN | |
50 Go one row down. | |
51 .It K | |
52 Go one row up and open the item. | |
53 .It J | |
54 Go one row down and open the item. | |
55 .It h, ARROW LEFT | |
56 Focus feeds pane. | |
57 .It l, ARROW RIGHT | |
58 Focus items pane. | |
59 .It TAB | |
60 Cycle focused pane (between feeds and items). | |
61 .It g | |
62 Go to the first row. | |
63 .It G | |
64 Go to the last row. | |
65 .It PAGE UP, CTRL-B | |
66 Scroll one page up. | |
67 .It PAGE DOWN, CTRL-F, SPACE | |
68 Scroll one page down. | |
69 .It / | |
70 Prompt for a new search and search forward (case-insensitive). | |
71 .It ? | |
72 Prompt for a new search and search backward (case-insensitive). | |
73 .It n | |
74 Search forward with the previously set search term. | |
75 .It N | |
76 Search backward with the previously set search term. | |
77 .It \&[ | |
78 Go to the previous feed in the feeds pane and open it. | |
79 .It ] | |
80 Go to the next feed in the feeds pane and open it. | |
81 .It CTRL-L | |
82 Redraw screen. | |
83 .It R | |
84 Reload all feed files which were specified as arguments on startup. | |
85 .It m | |
86 Toggle mouse-mode. | |
87 It supports xterm X10 and extended SGR encoding. | |
88 .It s | |
89 Toggle between monocle layout and the previous non-monocle layout. | |
90 .It < | |
91 Use a fixed sidebar size for the current layout and decrease the fixed w… | |
92 height by 1 column. | |
93 .It > | |
94 Use a fixed sidebar size for the current layout and increase the fixed w… | |
95 height by 1 column. | |
96 .It = | |
97 Reset the sidebar size to automaticly adjust for the current layout. | |
98 With the vertical layout the width is the longest feed name with the item | |
99 counts right-aligned. | |
100 With the horizontal layout the height is half of the window height (minu… | |
101 statusbar) or otherwise the total amount of visible feeds, whichever fit… | |
102 best. | |
103 .It t | |
104 Toggle showing only feeds with new items in the sidebar. | |
105 .It a, e, @ | |
106 Plumb URL of the enclosure. | |
107 The URL is passed as a parameter to the program specified in | |
108 .Ev SFEED_PLUMBER . | |
109 .It o, ENTER, RETURN | |
110 Feeds pane: load feed and its items. | |
111 In the monocle layout it will also switch to the items pane after loadin… | |
112 feed items. | |
113 Items pane: plumb current item URL, the URL is passed as a parameter to | |
114 the program specified in | |
115 .Ev SFEED_PLUMBER . | |
116 .It c, p, | | |
117 Pipe the whole TAB-Separated Value line to a program. | |
118 This program can be specified with | |
119 .Ev SFEED_PIPER . | |
120 .It y | |
121 Pipe the TAB-Separated Value field for yanking the URL to a program. | |
122 This program can be specified with | |
123 .Ev SFEED_YANKER . | |
124 .It E | |
125 Pipe the TAB-Separated Value field for yanking the enclosure to a progra… | |
126 This program can be specified with | |
127 .Ev SFEED_YANKER . | |
128 .It r | |
129 Mark item as read. | |
130 This will only work when | |
131 .Ev SFEED_URL_FILE | |
132 is set. | |
133 .It u | |
134 Mark item as unread. | |
135 This will only work when | |
136 .Ev SFEED_URL_FILE | |
137 is set. | |
138 .It f | |
139 Mark all items of the current loaded feed as read. | |
140 This will only work when | |
141 .Ev SFEED_URL_FILE | |
142 is set. | |
143 .It F | |
144 Mark all items of the current loaded feed as unread. | |
145 This will only work when | |
146 .Ev SFEED_URL_FILE | |
147 is set. | |
148 .It 1 | |
149 Set the current layout to a vertical mode. | |
150 Showing a feeds sidebar to the left and the feed items to the right. | |
151 .It 2 | |
152 Set the current layout to a horizontal mode. | |
153 Showing a feeds sidebar on the top and the feed items on the bottom. | |
154 .It 3 | |
155 Set the current layout to a monocle mode. | |
156 Showing either a feeds or a feed items pane. | |
157 .It q, EOF | |
158 Quit | |
159 .El | |
160 .Sh MOUSE ACTIONS | |
161 When mouse-mode is enabled the below actions are available. | |
162 .Bl -tag -width Ds | |
163 .It LEFT-CLICK | |
164 Feeds pane: select and load the feed and its items. | |
165 In the monocle layout it will also switch to the items pane after loadin… | |
166 feed items. | |
167 Items pane: select item, when already selected then plumb it. | |
168 .It RIGHT-CLICK | |
169 Feeds pane: select feed, but do not load it. | |
170 Items pane: pipe the item. | |
171 .It SCROLL UP | |
172 Scroll one page up. | |
173 .It SCROLL DOWN | |
174 Scroll one page down. | |
175 .It FORWARD | |
176 Switch to the items pane. | |
177 .It BACKWARD | |
178 Switch to the feeds pane. | |
179 .El | |
180 .Sh SIGNALS | |
181 .Bl -tag -width Ds | |
182 .It SIGHUP | |
183 Reload all feed files which were specified as arguments on startup. | |
184 .It SIGINT, SIGTERM | |
185 Quit | |
186 .It SIGWINCH | |
187 Resize the pane dimensions relative to the terminal size. | |
188 .El | |
189 .Sh ENVIRONMENT VARIABLES | |
190 .Bl -tag -width Ds | |
191 .It Ev SFEED_AUTOCMD | |
192 Read and process a sequence of keys as input commands from this environm… | |
193 variable first, afterwards read from stdin as usual. | |
194 This can be useful to automate certain actions at the start. | |
195 .It Ev SFEED_PIPER | |
196 A program where the whole TAB-Separated Value line is piped to. | |
197 By default this is "sfeed_content". | |
198 .It Ev SFEED_PIPER_INTERACTIVE | |
199 Handle the program interactively in the same terminal or not. | |
200 If set to "1" then before execution it restores the terminal attributes … | |
201 .Nm | |
202 will wait until the program is finished. | |
203 If set to "0" then it will suppress stdout and stderr output. | |
204 By default this is set to "1". | |
205 .It Ev SFEED_PLUMBER | |
206 A program that receives the link URL or enclosure URL as a parameter. | |
207 By default this is "xdg-open". | |
208 .It Ev SFEED_PLUMBER_INTERACTIVE | |
209 Handle the program interactively in the same terminal or not. | |
210 If set to "1" then before execution it restores the terminal attributes … | |
211 .Nm | |
212 will wait until the program is finished. | |
213 If set to "0" then it will suppress stdout and stderr output. | |
214 For example this option is useful to open a text-mode browser in the same | |
215 terminal. | |
216 By default this is set to "0". | |
217 .It Ev SFEED_YANKER | |
218 A program where the URL or enclosure field is piped to, to copy it to a | |
219 clipboard. | |
220 By default this is "xclip -r". | |
221 .It Ev SFEED_YANKER_INTERACTIVE | |
222 Handle the program interactively in the same terminal or not. | |
223 If set to "1" then before execution it restores the terminal attributes … | |
224 .Nm | |
225 will wait until the program is finished. | |
226 If set to "0" then it will suppress stdout and stderr output. | |
227 By default this is set to "0". | |
228 .It Ev SFEED_URL_FILE | |
229 If this variable is set then a different mode is used to mark items as r… | |
230 instead of checking the timestamp, which is the default. | |
231 The value specified is a plain-text file containing a list of read URLs,… | |
232 URL per line. | |
233 This URL is matched on the link field if it is set, otherwise it is matc… | |
234 the id field. | |
235 .It Ev SFEED_MARK_READ | |
236 A program to mark items as read if | |
237 .Ev SFEED_URL_FILE | |
238 is also set, if unset the default program used is "sfeed_markread read". | |
239 The marked items are piped to the program line by line. | |
240 If the feed item has a link then this line is the link field, otherwise … | |
241 the id field. | |
242 The program is expected to merge items in a safe/transactional manner. | |
243 The program should return the exit status 0 on success or non-zero on fa… | |
244 .It Ev SFEED_MARK_UNREAD | |
245 A program to mark items as unread if | |
246 .Ev SFEED_URL_FILE | |
247 is also set, if unset the default program used is "sfeed_markread unread… | |
248 The unmarked items are piped to the program line by line. | |
249 If the feed item has a link then this line is the link field, otherwise … | |
250 the id field. | |
251 The program is expected to merge items in a safe/transactional manner. | |
252 The program should return the exit status 0 on success or non-zero on fa… | |
253 .It Ev SFEED_LAZYLOAD | |
254 Lazyload items when reading the feed data from files. | |
255 This can reduce memory usage but increases latency when seeking items, | |
256 especially on slower disk drives. | |
257 It can also cause a race-condition issue if the feed data on disk is cha… | |
258 while having the UI open and offsets for the lines are different. | |
259 A workaround for the race-condition issue is by sending the SIGHUP signa… | |
260 .Nm | |
261 directly after the data was updated. | |
262 This forces | |
263 .Nm | |
264 to reload the latest feed data and update the correct line offsets. | |
265 By default this is set to "0". | |
266 .It Ev SFEED_FEED_PATH | |
267 This variable is set by | |
268 .Nm | |
269 when a feed is loaded. | |
270 If the data was read from stdin this variable is unset. | |
271 It can be used by the plumb or pipe program for scripting purposes. | |
272 .El | |
273 .Sh EXIT STATUS | |
274 .Ex -std | |
275 .Sh EXAMPLES | |
276 .Bd -literal | |
277 sfeed_curses ~/.sfeed/feeds/* | |
278 .Ed | |
279 .Pp | |
280 Another example which shows some of the features | |
281 .Nm | |
282 has: | |
283 .Bd -literal | |
284 export SFEED_AUTOCMD="2tgo" | |
285 export SFEED_URL_FILE="$HOME/.sfeed/urls" | |
286 [ -f "$SFEED_URL_FILE" ] || touch "$SFEED_URL_FILE" | |
287 sfeed_curses ~/.sfeed/feeds/* | |
288 .Ed | |
289 .Pp | |
290 Which does the following: | |
291 .Bl -enum | |
292 .It | |
293 Set the current layout to a horizontal mode ('2' keybind'). | |
294 Showing a feeds sidebar on the top and the feed items on the bottom. | |
295 .It | |
296 Toggle showing only feeds with new items in the sidebar ('t' keybind). | |
297 .It | |
298 Go to the first row in the current panel ('g' keybind). | |
299 .It | |
300 Load the current selected feed ('o' keybind'). | |
301 .It | |
302 Set a file to use for managing read and unread items. | |
303 This file is a plain-text file containing a list of read URLs, one URL p… | |
304 line. | |
305 .It | |
306 Check if this file for managing the read and unread items exists. | |
307 If it doesn't exist yet then create an empty file. | |
308 .It | |
309 Start | |
310 .Nm . | |
311 .El | |
312 .Sh SEE ALSO | |
313 .Xr sfeed 1 , | |
314 .Xr sfeed_content 1 , | |
315 .Xr sfeed_markread 1 , | |
316 .Xr sfeed_plain 1 , | |
317 .Xr xclip 1 , | |
318 .Xr sfeed 5 | |
319 .Sh AUTHORS | |
320 .An Hiltjo Posthuma Aq Mt [email protected] |