Updates & latest news on next timekpr

Written for timekpr-revived by Eduards Bezverhijs on 2018-09-18


Let's start with minor improvements to current version of timekpr.
I pushed an update to timekpr to deal with dependency issue with indicator packages (which seems to get in the way only to users of Ubuntu 18.04+) and one little fix for KDE users, now timekpr will show available time in the label when mouse moves over the icon in "Notification area".

I have some news for those who are still around and wanted a better timekpr - I have resumed my work on timekpr's next version. This time I got very far compared to what I had previously, but during development I questioned myself about features to put in the next version.

I'm not overly restrictive parent, but there should be some limits. There comes my only usage of timekpr - to limit time for kids, so they don't play on computer WAY TOO MUCH.
I have no idea how else people would like to use timekpr, therefore I have no clear vision of what useful to plan.
However, I have bug reports :) Some ended up in whishlist for the old version of timekpr, some gave me a clue for problematic areas and such.

So I decided to "go by the bus" :) So everything is built with DBUS in mind. I have built timekpr "server", which does all the "dirty" work / computing and "client" (icon) which listens to server through DBUS and presents information to user in GUI. This allows synchronous operation and other goodies, DBUS is used for notifications and session management as well.
For instance, this will allow to terminate user sessions with very precise timing, like 5-4-3-2-1-kaboom type of precision, it will allow to determine whether session is active or idle, it will allow to exclude certain types of sessions, e.g. tty and so on.
Unlike previous version, this one loads configuration in memory and operates there, it's fast and efficient, but way more complex due to nature of async messaging and added features.

So I have a plan to release a version (when it's ready) with the following features:
* everything runs on DBUS (almost implemented)

* configuration is still flat files, I'm believer in plain nice config files which can be edited by text editor (implemented)

* I'll support AppIndicator (Unity/KDE/Mate/...) and StatusIcon (legacy systray) if AppIndicator is not available, still, for gnome-shell one will have to install some extension for timekpr to show up, because in vanilla gnome-shell (and their design guidelines) there are no status icons for third parties (even for apllications like timekpr which are similar to battery indicator, when there is no "juice"/time, one can't use the computer :)) (almost implemented)

* inactive session time will not count (if user locks the computer, time will not be accounted, but can be disabled in config) (implemented)

* certain session types are excluded, for example time spent in tty is not accounted and tty sesssions are not terminated (can be configured) (implemented)

* time is configurable by weekdays, that is which week days are allowed (implemented)

* time is configurable by hours (yes, it's possible to pick whichever hours one likes, thus multiple intervals can be created within the day) (implemented)

* time is configurable by minutes within hour, but this is somewhat limited as I do not believe someone will limit time within hour in multiple intervals, so only start and end minute is configurable (for instance one can pick hour interval from 9:24 - 11:37, because he can :)) (implemented)

* user session can pass the midnight without forced logout, if one allows it... (implemented)

* unlike previous version, this version does NOT have hard account lock (as it's actually problematic), like in current version - when account is locked by timekpr, login manager says "invalid password" which obviously is not the case and this can't be easily worked around, in upcoming version if user logs in and have no time left, he'll be forcibly logged out in 15 seconds (where the last 5 seconds have proper countdown (5-4-3-2-1-kaboom :)) (implemented)

* there will be more notifications about the state of time, like when time is added or configuration changed, notification is shown, it will show notifications for gnome-shell to install extension, because application has no way of knowing whether icon is shown or not, gnome-shell just hides it... (partially implemented)

* there will be a configuration overview for client, e.g. user will be able to see his configuration - which time intervals are available, time spent, time being inactive, etc. (a little bit implemented)

I hope I did not forget some important feature already implemented :)

Currently there is no GUI developed yet, except the "client" icon, of course I plan to do that, but first of all, I have to make sure everything is working properly without major bugs.
This rewrite took quite some time and effort as I'm not python nor DBUS nor GTK expert and I wanted user to have reasonable experience. So, it will be done when ready, not earlier.

I had a plan, albeit distant, to have statistics and master user management for school type of usage (user groups with schedule), etc. but I feel that this is not needed.
Another thing ppl asked is to have white/black list of web sites user is able to access, but I'm afraid this is not something I can implement reasonably, especially per user basis, however, I'll look into it at some time.

Actually I need some feedback what users of timekpr really would like to have, I probably need to write to some linux centric blog/site owner to have an article about this, most likely that will help on planning next features, I'll see what I can do. Please contact me if You're up to this.

P.S. thanks to those who donated, I decided not to have a cup of tea - I'll try to save up for bottle of rum or so :)

Read all announcements