As said one comment above, check if it’s the same composition as before and don’t take a screenshot if it didn’t change. Make some rules to filter out video content so if you have a youtube video open it doesn’t take a screenshot every second just because the video is running.
Or you could actually integrate this with your window manager. Only take a screenshot if you move / resize / open / close a window. Make a small extension for browsers that tell it to make a screenshot if you scroll / close / open a page. Then you don’t have to make a screenshot and compare with the one before.
This wouldn’t be as thorough as just forcing screenshots all the time and you would probably not catch stuff like writing a text in libreoffice as you don’t change anything with the window. But it could be a resourceful way to do that.
And if for example no screenshot was taken for 1 minute because nothing called for that, you could just take one regardless. That way you have a minimum of one screenshot per minute or as often as window manager / browser calls for it.
Running OCR every second sounds like a great way to choke your CPU
Once a minute, and only if the screen contents change. I imagine there’s something lightweight enough.
You could optimize it though.
As said one comment above, check if it’s the same composition as before and don’t take a screenshot if it didn’t change. Make some rules to filter out video content so if you have a youtube video open it doesn’t take a screenshot every second just because the video is running.
Or you could actually integrate this with your window manager. Only take a screenshot if you move / resize / open / close a window. Make a small extension for browsers that tell it to make a screenshot if you scroll / close / open a page. Then you don’t have to make a screenshot and compare with the one before.
This wouldn’t be as thorough as just forcing screenshots all the time and you would probably not catch stuff like writing a text in libreoffice as you don’t change anything with the window. But it could be a resourceful way to do that.
And if for example no screenshot was taken for 1 minute because nothing called for that, you could just take one regardless. That way you have a minimum of one screenshot per minute or as often as window manager / browser calls for it.
That’s why the new cpus have npus on board…