Keeping track of reading progress #306
Replies: 2 comments 1 reply
-
I think this feature is too niche to implement in sioyek directly. I do like the idea of being able to execute a command on events (e.g. page turns), and allow the user to implement this feature themselves if they want to. |
Beta Was this translation helpful? Give feedback.
-
It might actually be niche since there's no other pdf reader apart from polar (which isn't opensource, seems suffers from vendor lock-in and hosts documents in the cloud so imho to be avoided like the plague) which allows you to track reading progress. But in general I don't think it's a good idea to judge the value of a feature based on whether it's niche but rather on whether it's useful and fits in well with other features or would be useful for the intended users. After all sioyek features itself are very niche but very useful for certain people. In regards to tracking reading progress I think it fits right in with other features useful for academia, say for instance you've got lot's of papers, slides or other documents to go trough (the type of document doesn't matter only that there are a lot of short documents) in that case I think it would be rather useful to be able to track how much you've read of each document and to have for instance an overview of the reading progress of all documents in a folder. Another nice functionality would be to be able to indicate which parts of a document you want to read and therefore want to track the reading progress of, say for instance you've got the pdf of a journal but only want to read a single article it would be then it would be nice if you could say track the reading progress of this chapter. I think advanced features like this would become hard to implement only by commands, especially for instance visual feedback of reading progress, so it would be nice to have them integrated in the program itself. I'll try to think of some more features and how they could be implemented/ work together and see if I can post a more detailed reasoning behind the usefulness of those features asap. |
Beta Was this translation helpful? Give feedback.
-
I'd love to be able to keep track of my reading progress for pdf's I read, not only the last page I've read but also for instance page ranges. This is because I read pdf's from quite a lot of different sources and sometimes don't come back to a document for a long time. A nice use case is keeping track of your reading progress of a big manual, which is not necessarily read linearly (i.e. not in order) and might take quite some time.
I'm opening a discussion here instead of a feature request since there are many ways to do this of which I don't know what would be best and there are lots of edge cases of which I don't know how they should be taken care of. So it seemed most suitable for a discussion first.
Roughly speaking I think there are two approaches to keeping track of what has been read:
One feature which would make it possible to track reading progress already is to update the
shared.db
'sopened_books
table whenever a page is turned in a document (or whatever change inoffset_y
is deemed appropriate). Even nicer would be to have a configurable callback whenever a page is turned, think of a (n)vimautocmd
with a page turned event if you're familiar withautocmd
's. This would require the user to determine whether a page has been read (for instance based upon how long you've been on the same page) however.An example of a manual approach is the way polar bookshelf did it, namely allowing the user to drag a special "progress" highlight over the pdf indicating they've read the highlighted part. Although I thought this got quite tedious rather fast I think it could be quite ergonomic combined with the keyboard-centric approach sioyek takes, with the further benefit of allowing for a more granular tracking of reading progress than tracking read pages allows for. Here's a screenshot of the functionality:
![image](https://user-images.githubusercontent.com/21057514/177574448-25272bef-771b-4dae-943d-ea9dc6ad4bdd.png)
The light blue highlight is one for keeping track of reading progress.
The second approach is to try and determine whether a user had read a page automatically. An approach which I can think of is to keep track of the time a user spent on a page (i.e. to discern e.g. searching or scanning a pdf from reading it) and potentially looking at how much words are on the page as well. But I think there are a lot of edge cases in regards to automatically tracking reading progress, maybe even too much. Manual progress tracking seems like a prerequisite for automatic tracking as well given that I can't see a way in which automatically tracked progress will always be correct and will need manual correction.
I'm interested to know about any other approaches to this and whether this functionality is even in scope for sioyek.
Beta Was this translation helpful? Give feedback.
All reactions