News and announcements

Timekpr-nExT accepted in Debian!

Written for Timekpr-nExT by Eduards Bezverhijs on 2020-07-12

Thanks to Sim (smntov) and Anthony Fok (foka) Timekpr-nExT is officially accepted in Debian!

This means that Timekpr-nExT will be available in Ubuntu software center at some point in time and there will be no need to add ppa (except for beta builds, I guess).

I'll keep You updated if there will be fundamental changes on how I develop / translate / etc. Timekpr-nExT.

If You think I deserve something in return for making Timekpr-nExT or just want to contribute, please do so via PayPal: https://tinyurl.com/yc9x85v2 .

Timekpr-nExT for RPM distros

Written for Timekpr-nExT by Eduards Bezverhijs on 2020-07-10

A short, technical announcement about version for RPM distros...

I have made it possible to create a package for RPM distros.
I created a minimal, but sufficient spec file which can be used to create a package for Fedora 32 and openSUSE Leap 15.2, tested both, BUT I think You can install it on any recent version of those distributions (if dependencies work out fine!).

Download & use
---------------------
For those who are not that brave to compile it themselves, I created packages for FC32 / Leap 15.2.

Please feel free to use the packages: https://drive.google.com/drive/folders/1iN1wcPctGhd_OISqzWZ5DigFMVvgSGq9?usp=sharing

NOTE: version 0.5.0 is now considered stable!

Installation and removal using CLI is described below, but one can use graphical installer if preferred, just download and dbl-click on package for installation and removal should be available in package manager for respective distribution.

Installation.
-----------------------------
Fedora / openSUSE:
    sudo rpm -Uhv <downloaded package>
-----------------------------

Removal
-----------------------------
Fedora:
    sudo dnf remove timekpr-next
openSUSE:
    sudo zypper remove timekpr-next
-----------------------------

I do not plan to compile a rpm package for every version I make for Ubuntu, if You want to see packages made for Your favorite RPM distro, please talk to someone from Your distro community.

You may, as well, ask me to build & upload packages, I'll do that if I'll have time...

Build
-----------------------------
Please see the instructions here: https://git.launchpad.net/timekpr-next/plain/spec/README
README contains simple instructions how to get package compiled for FC32 and openSUSE.

Please note that spec file is meant for stable releases, which may not yet be available as source download. Please use pre-made packages if this is the case.

Please use instructions as they are, if You're building them in different way or using completely different method, I'll not be much of help and at that point You're on Your own, sorry.

Notes
-----------------------------
If You have ideas how to improve spec file or see that there is something wrong, please send me an e-mail with suggestions.
Please do not e-mail instructions which uses "distro x specific build system", as I simply will not have any use for them.

You can help
-----------------------------
If You think I deserve something in return for making Timekpr-nExT or just want to contribute, please do so via PayPal: https://tinyurl.com/yc9x85v2 .

Updated .

Great features and polish for Timekpr-nExT

Written for Timekpr-nExT by Eduards Bezverhijs on 2020-06-18

I had some time at my hands and in past weeks I was able to greatly polish Timekpr-nExT.
Last month Timekpr-nExT had lock screen time accounting improvements, now it's time for more polish...

TL;DR - new version is great, time to upgrade (firstly in beta form, of course)!

For curious readers, let's continue...

Visible enhancements
---------------------------------------------
* it's now possible to adjust limits and hour intervals for multiple days at once, just select desired days (or all of them) and set limits and intervals, do not forget to apply the configuration

* un-checking and checking days in day list will restore configuration that was set before instead of clearing it

* administration application now has two more fields - time left today and time left actual, the former is calculated from saved state and shows how much time user still has, latter is available only when particular user is logged in as it's calculated almost in real time

* for console users, administration application now shows a lot more information about user especially when he's logged in, it should greatly help to get the information about user when connecting to computer remotely, couple of labels have been changed as well as option name, please run timekpra --help to see the changes

* administration application will have access to newly created users right after they're added, open administration application and it's possible to adjust configuration right away

* timekpr will not switch to login screen if user which is being terminated is not active at the moment (i.e. other user is using the computer using user switching), this seems to work fine with KDE, Linux Mint Mate, etc., except when Gnome Display Manager is used, if GDM handles Your logins, it will switch to login screen even not being asked to (previously it did not switch even when single user was terminated)

* there's the possibility to turn off icon and notifications for users, it may be beneficial to unlimited users who do not want to see the limitations icon at all (as usual, the switch can be flipped using console mode as well)

Bug fixes
---------------------------------------------
* fixed an annoying bug for unlimited users when under some circumstances it still counted time despite being unlimited, it did not affect the unlimited time though, it still was unlimited

* fixed time spent for today, now it shows correct values even when more time was added on top of daily limit

Technical improvements
---------------------------------------------
* fixed control / configuration file recreation in case options are missing, this will help adding options transparently in case more features will be added

* timekpr will not try to switch (and fail) to login screen in case it can not (i.e. session does not have a seat assigned to it, so far to the best of my knowledge only RDP sessions do not have them), this had implication that user was not terminated at all, but now it should be fixed

* refactored quite a lot of code, names, parameters, etc., this was done to be more consistent and correct about actual functionality and names involved in it as well as help introducing a new features easier

Possible upcoming features
---------------------------------------------
Nikita, one of the users of Timekpr-nExT has developed a working proof of concept for counting time only when specified applications are running, i.e. count time when steam or some game is running. The feature itself is great, thanks Nikita!, but currently it's very technical and will not be understandable to average user.
There were some other technical nuances, which I was able to find a solution for.
If I'll have some more free time, together with Nikita, we'll make this feature available at some point in the future.

The other thing is to hide application icon for unlimited users. One of Timekpr-nExT users asked for it, because apparently it can not be disabled using standard startup application settings.

Closing notes
---------------------------------------------
Please be aware that 0.4.x versions are incompatible with previous versions. After installing 0.4.x version (even beta), it will not be possible to go back to 0.3.x without getting hands dirty (i.e. modifying config files manually).

If You have ideas for new features, please send them to my e-mail, we'll discuss them and if it's useful and possible to implement without breaking fingers, I'll try to do it :)

If You think I deserve something in return for making Timekpr-nExT or just want to contribute, please do so via PayPal: https://tinyurl.com/yc9x85v2 .

Thanks for listening!

Updated .

Finally working lock screen time detection

Written for Timekpr-nExT by Eduards Bezverhijs on 2020-04-12

First of all, not many bugs seems to be bugging Timekpr-nExT users, although there was one serious about time accounting, which is fixed. That's good :)

Now, there is a great feature that finally is implemented rather reliably!

TL;DR + high level summary
------------------------------------------
When user locks the screen and inactive time accounting is not set, time will be interpreted as inactive and time spent will not be accounted for users on most DEs.

Beware, that for Gnome3 and all who implement their way of considering session inactive - it's inactive only when screen turns off after locking the screen, while KDE (for example) considers screen locked when it's locked and there is no need for screen to be turned off!

Either way, good times for users :)
------------------------------------------

More detailed and technical description
------------------------------------------
After one user in questions section on launchpad and another one IRL complained about time accounting when screen is locked, I tried to think of the solution. As I stated in previous announcements and on Timekpr-nExT description page, it's not exactly possible using server side methods, because about every DE in existence set session idle flags differently thus rendering reliable detection impossible.
This issue or feature was not on my priority list, no one complained / asked questions and because of that I just didn't think of alternative solution until couple of days ago.

The solution is plausible and must work in most of DEs, let me explain...
Every user session should have a screensaver component exposed to their own session level DBUS, but timekpr operates as root user and connects to session manager interfaces on system bus. Manager interfaces, normally, are not available and modifiable by normal users, so normal user can not interfere with them, thus information there is reliable and can not be "faked" easily.
Screen locking, however, is normal user's thing and can be accessed only by that user.
As a side note, it is possible to connect to user DBUS from root, but then whole timekpr has to switch over to user permissions with all the consequences, I've tried that and it was not good at all.

So, the next thing I could do, was to implement this in client and make it push updates to server, however client being a client, is susceptible to user modifications and result "faking", that had to be taken care of as well.

So, I added functionality to client, now it connects to screensaver module and waits for it to inform timekpr about activation or deactivation. When screensaver activates, timekpr client gets an event which it passes to server. However, server can not trust anyone to just say "Hey, I'm idle... I really am and will be for a long time :)", so it issues verification request to which clients has to reply. If client does not reply or replies incorrectly, timekpr counts this user as active.
To be sure that client is actually inactive, server issues verification requests periodically. Requests are not the same all the time so not exactly trivial to fake, this ensures more trust between server and actual client.

Technically this was finicky to implement, but it works, but please be aware that Gnome3 & friends have different behaviour than KDE, XFCE or (insert Your favourite DE here). For Gnome3 make sure that when screen is locked, it actually turns off for this feature to work. For KDE & XFCE, just lock the screen and done, screen does not have to be off.

I would like to stress, that timekpr is just an observer here, it can ask everyone and their cousin about the state of session, if they will reply that session is not idle or is not locked, it can not do much in that situation...

Please note that screensaver detection is a client responsibility, thus can be faked by clever program user can write, but if user can write a piece of code that actually connects to timekpr DBUS, understand it's logic / verification requests, etc. and can fake results based on client / server interaction, maybe this user should not have timekpr enforced on him in the first place :)

This is now beta, if all goes well, it will be released as stable, but after confirmation that it works from at least multiple users.

BR, Eduards

Timekpr-nExT update after release

Written for Timekpr-nExT by Eduards Bezverhijs on 2019-08-07

Some time has passed since release and it seems that Timekpr-nExT is doing somewhat ok :)

There were couple of bugs and enhancement requests.

Bugs are fixed, latest two were improvements for Gnome3 users who just don't see full application name in application launcher / dash and fix for Timekpr-nExT client to start in Deepin (and other non-major DE's) to see icon and notifications.

Enhancement requests are not yet being worked on because my only use case for son went away since we had a deal that when he finishes elementary school he's old enough to manage his computer time on his own, which currently is not exactly ideal, it's plausible, but daughter who is quite younger is more responsible therefore there's not yet a need to manage her computer time at all.

I have checked internet about how much people know about Timekpr-nExT and I'll say people don't know much at all . This means that either people just use the software silently or don't know that it exists or simply don't need it :)
There are no publications or guides yet, it seems that people are not much interested in this, however, I found that for some reason or other people want to see a release tarballs for source code and not git repos (except ArchLinux) so I created first release tarball. Hopefully that helps.

There are couple of things:
* unless You create a question or bug, I simply DO NOT KNOW that something is not working or there is a need for smth (like the need for source tarballs)
* please share a word about Timekpr-nExT for people may need this

Happy timekpring :)

15 of 8 results