Introduction
Introduction Statistics Contact Development Disclaimer Help
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]
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.