TimeSnapper has been a windows-only product for a decade, we’re now at beta stage in our Mac version which you can use by joining here: http://www.secretgeek.net/ts_mac_beta
I don't know the exact use case for this app, so take my feature request with a grain of salt. I implemented something similar for myself which I used for 2-3 years. At first I took a screenshot plainly, but I found that the context was really hard to figure out. I ended up adding a webcam picture to each screenshot, this helped me place where/why I might have been on that specific website. My use case was mostly novelty though. But I still like looking back at the pictures every now and then. You can see my examples (+ script) here: http://www.jontelang.com/blog/2015/08/15/automating-screensh...
The beta period may reveal more challenges, but so far we’ve routinely used it on 5 screen setups, with varying DPIs. Is that the sort of thing you’re asking about?
The same can be achieved by just running screencapture(1) periodically, although cron is broken in Mac OS and probably you can't access screen from cron jobs. So, while loop in shell with sleep, for example, or StartInterval in launchd job.
Avoiding screenshoting when screen is locked is more complicated, though. You have to access Quartz.CGSessionCopyCurrentDictionary somehow, i.e. from python.
P.S. does Automator or Applescript allows to achieve the same functionality?
It’s a nicer experience than using a hand rolled script, particularly playback and handling of edge cases.
It’s a bit like saying “instead of buying food from a shop you could just grow your own food.” It’s technically true, but then you’re responsible for all the care and feeding of the tree instead of other activities that are higher economic value to you.
When we first thought of the idea, over a decade ago, people immediately raised that concern. But few of them wrote the script. Or if they did, they abandoned it after a while and it languished because they didn’t invest the time to do it nicely.
Playback of the images is the first big advantage to having someone else write the code. But also it means that someone has put effort into dealing with cases such as multiple monitors, and multiple monitors with varying DPI and so on. Avoiding screenshots when idle, avoiding duplicates etc.
But I do love scripting up personal solutions to things, and spend far too much time doing exactly that. So I like the attitude.
Yup, this is a very common effect that is used by almost every technology in existence. Almost anything is replicable, and engineers love to point that out, and how little time it would take them to replicate as a humblebrag hidden as a comment on triviality of the product. In reality, though, convenience and user experience is what makes the world work, not how easy something is on paper, because that last 20% that makes anything valuable can sure as hell be paid for only in the currency of blood, sweat and tears. (And time.)
Industrial revolution was a thing because it made easier the manufacturing of clothing. People could do it by hand before, the end product wasn’t something a human hand couldn’t. It just made it slightly simpler, and here we are 200 years later, counting atoms on microprocessor semiconductor walls.
I think playback is the thing that makes it nice. Glad to hear about you scripting it... it’s really useful to have records, in a whole bunch of situations.
Yeah the playback is what makes this cool. I started using TimeSnapper and am really liking it. I do think it is lacking some depth and features. I was going to email TimeSnapper back to give feedback this weekend.
I switched from Windows to Linux quite a few years ago, but when I was on Windows, I was a paying customer and huge fan of TimeSnapper. It's one of the few tools I truly missed after the move.
Well done, Leon. Glad to see TimeSnapper is still going!
Thanks so much enobrev, that’s really heart warming. ;) I use a bit of Linux myself these days via WSL (and digital ocean droplets running .net core). I feel strangely at home on Linux in a way I can’t really articulate. Perhaps in a past life I was a file descriptor.
We’ve been delivering TimeSnapper on windows for a decade and have never done anything to encourage or support that kind of “customer”.
We’re popular with freelancers and accountants and developers and people interested in personal productivity.
Every now and then there are people who ask for features that involve hiding timesnapper or centralising its output... we direct them to read the EULA and ask them to uninstall the product as they’re not someone we’re interested in dealing with.
If I wouldn’t want it done to me I don’t help people do it to others: end of story.
Have you considered any of the following to protect privacy & mitigate eavesdropping:
+ password or SSO protection for access to the app's data (use Kerberos/AD SSO for credentials?)
+ an end-user controlled encrypted store for the data & screenshots (FUSE/WinFSP?)
+ a daily local push/popup notification displayed to the logged-in user with...
a) app status
b) data summary
c) a quick action to toggle the background recording service on/off
In the Windows version you can password protect the images. Because they're stored locally there hasn't been a massive uptake in this feature, but some people do use it.
The icon is not easily hidden from the task tray (and we don't provide any option to encourage that). We found a daily notification too intrusive (as users ourselves).
I'm sorry if my comment came across as negative, and I completely accept that it does! I wasn't trying to crap on what's clearly a well-loved tool, more to make a wry joke. However I'm glad that it's given you the opportunity to make that point about the EULA and prohibited uses.
I like the idea of the tool a lot, I absolutely get the benefits of it and once it's in public release I'll very likely use it on my home machine for those 'retention' reasons you talk about. I love the idea of being able to replay a usage session.
...not true. We actually love electron as a platform. But there is no way at all it would be suitable for this product.
So we didn’t use it here.
Often when someone says “we now have a cross platform product” people think “I wonder if they used Electron?”
In this case, a discerning reader might’ve realised that Electron would be inappropriate, so I headed them off at the pass by saying that we don’t use it.
This is an app that should run all the time and have as little impact as possible. It’s most common activity is very dependent on native support (for screen capture).
When viewing/playback we’re in territory that wouldn’t be terrible for electron, but we have the skills to implement it natively (by we I mean my partner Jon) so that’s what we do.
I don't know the exact use case for this app, so take my feature request with a grain of salt. I implemented something similar for myself which I used for 2-3 years. At first I took a screenshot plainly, but I found that the context was really hard to figure out. I ended up adding a webcam picture to each screenshot, this helped me place where/why I might have been on that specific website. My use case was mostly novelty though. But I still like looking back at the pictures every now and then. You can see my examples (+ script) here: http://www.jontelang.com/blog/2015/08/15/automating-screensh...