Commit Briefs

Omar Polo

persist list of visited URLs to the disk

Persist a generalized history of visited URL in history_file and try to keep it in sync during telescope usage and shutdown.


Omar Polo

remote open: open an url into telescope from outside of it

if telescope is started with an url while there is already another instance of it running and the -S flag is not provided, the link will be automagically opened into the running instance of telescope. Telescope now listens on a UNIX domain socket in ~/.telescope/ctl (or ~/.cache/telescope/ctl if XDG is used) for commands.


Omar Polo

typo in parse_session_line

without +4 strtonum sees top=X and cur=Y which are invalid numbers, so the scroll position is lost.


Omar Polo

save and restore scroll position

Save the offset to the first and current line of the buffers and restore it when the page is loaded. This restores almost the exact viewport: we save the offset of the *real* line in the document, but they get wrapped before being displayed, so the actual restored position may be slightly above from the original one (think of a long paragraph that gets wrapped over multiple visual lines.) In practice, this isn't a drawback but only an improvement over the current behaviour. In the future we could save also the offset *inside* the line, to restore the exact position, but that felt unnecessary for now. Persisting the postion on the session file ensures that even when re-opening telescope the scroll position is correct. There are some very active pages, such as antenna or other aggregator, where this feature doesn't really work well if you re-open the page after a while, since new links are available, but otherwise is a god sent! See also github issue #1


Omar Polo

simplify parse_session_line

drop sendtab which is not that useful and send the tab to the ui process directly in parse_session_line. It's easier to skip malformed session lines too!


Omar Polo

move util.c declarations in utils.h

it's not spelled `util.h' because otherwise it'd get included instead of /usr/include/util.h


Omar Polo

allow to re-open closed tabs

Save closed tabs to a "killed tabs" queue, for up to a max of "max-killed-tabs", and allow to re-open them. Keep the tab history but not its content. This integrates nicely with the session file, just add the "killed" flag as alias for TAB_KILLED and put it in the ktabshead queue upon initalization. It's thus possible to re-open closed tabs even after telescope has been closed, and tabs keeps their history! Add a new cmd, cmd_tab_undo_close, to try to re-open the most recently closed tab and bind it to `u'. While here, add a TODO for the tab history memory leak.


Omar Polo

mark last_time_crashed as static


Omar Polo

s/xdg_init/init_paths/g




Omar Polo

mark parse_khost_line as inline


Omar Polo

move know_host parsing to the fs process and load the store via imsgs

Like previously did with the session file, now the main process doesn't parse anything with the only exception being the configuration file. With this in, the only bit from fs.h still used in the main process is the path to the configuration file.



Omar Polo

implement persistent tab history

The session file is now overloaded with the history info, that means that upon startup telescope can repopulate each tab history! The price to pay is that one can't start an old telescope with a new session file, otherwise will get a lot of fancy '<' and '>' tabs...