Screenshot difference compression
Manictime's screenshot feature is a life saver. But it also takes up a ton of space using a full separate image for each screenshot. 90% of the time, adjacent screenshots are nearly identical, except for some text on the screen. Huge storage efficiency could be gained by using difference calculation between screenshots.
1. Every 10 minutes, take a fresh screenshot. Store it as a png like normal.
2. Every 15 seconds thereafter, take a new screenshot to memory
3. Using a library like ImageMagick, calculate the subtraction from the most recent png screenshot and the new screenshot in memory.
4. Store that subtraction alongside the other screenshots, but with a different file extension, like .pngdiff.
When browsing the screenshots, just do the reverse
1. Open the screenshot (png or pngdiff) for the time selected by the user
2. If it happens to be a png file, simply display it as-is.
3. If it's a pngdiff file, open the png most recently taken before the selected pngdiff
4. Using a library like imagemagick, perform an addition operation on the png and the pngdiff
5. Display the calculated image.
This could save many gigabytes of disk space without too much CPU overhead.