I'm kind of abusing this RFP here, but what the heck, I don't know where else to put this.
I've been relunctant to start using selfspy because of the obvious privacy and security implications of constantly running a keylogger on my computer. So I'm looking at alternatives. There's two things I want this thing to do: 1. monitor the *number* and *amount* of keystrokes and mouse movement, to give an idea of how badly I'm working (too much) 2. figure out *what* I'm working on, for time tracking purposes like billing Workrave is what I currently use for the former, and it kind of works, but it's really hard to pull the data out of there. It does nothing for the latter. Selfspy does both, but at a tremendous cost: it keeps all keystrokes in a database! Ouch. That's not a requirement *I* have. So timetrack is the other option I found: https://github.com/joshmcguigan/timetrack It keeps track of which *files* you're working on, using filesystem monitoring tools. I am not sure it will work for things like "I am writing to the BTS now" or "I'm wasting time on Hacker News" because files are not involved there, but I found it was an interesting enough approach that it was worth mentionning. But once you step into timetracking territory, there's a *lot* of tools that do things like that out there... https://mjasnik.gitlab.io/timekpr-next/ (in Debian) https://github.com/tagtime/TagTime https://github.com/kimmobrunfeldt/git-hours https://timesnapper.com/ https://hackage.haskell.org/package/arbtt (in Debian) https://activitywatch.net/ (#990173) The last two are especially interesting, I find. Activity Watch, in particular, watches windows with all sorts of hooks in web browsers or editors to figure out what's going on in there. It doesn't seem to keep track of keystrokes, but maybe that's better left to a tiny little tool instead. In fact, I wonder if the kernel's input devices don't already have counters for that kind of stuff we can use. Surely the kernel counts keystrokes, right? :) a. -- We reject kings, presidents and voting. We believe in rough consensus and running code. - David Clark