New Session Manager
For community centers we need to present to the user the amount of time that their session has left and at the same time log the user off when the session timer runs out. As a nice touch we want to warn the user as the session nears it’s end.
To achieve this we use an app indicator with a menu item with the amount of time left.

For the warnings we use the libnotify and change the icon of the app indicator too:

We also want to notify the user of how much time they have, so we add a welcome:

If the program exits or is killed, the gnome pid is also killed so the user logs off.
All of this is configurable so we can say what users should have what kind of session and what warnings:
logs: /var/log/sessions/
limit_by_group:
admin: ''
users: 01:00:00
testing: false
warnings:
- message: Welcome!
description: You have %(remains)d minutes in your session.
icon: application-community
from: session-start
times: [ '00:01' ]
- message: Session Running Out
description: Your session is about to end automatically, please save all your work. %(time)d minutes remaining.
icon: gtk-quit
from: session-end
times: ['10:00', '05:00', '01:00']
For reporting we also want to log sessions, when they start, when they end and on what machine:
events:
- {date: '2011-07-07T15:36:02.734579', message: log-started}
- &id002 {date: '2011-07-07T15:36:02.763812', message: login, session-pid: 1830, tag: started}
- &id001 {date: '2011-07-07T15:36:51.898611', message: forced, tag: end}
meta: {hostname: delen, username: doctormo}
We add the program’s .desktop file to the /etc/adg/autostart directory so it launches when gnome starts.
I guess this will help a lot if you need this kind of thing
In second last sentence “/etc/adg/autostart” should probably xdg, or not?
cheers
Amazing work! Thanks so much for doing this!
This tends to be a recurring question in various circles: “I manage a community center’s computer systems, how can I have guest sessions time out automatically”, and now we have a functional and aesthetic way of doing this, that doesn’t depend on timeoutd which doesn’t appear to be maintained anymore.
[...] Via | Martin Owens [...]
Nice work, but, what about Natty (PPA package)?
Razvi – Currently building for lucid, natty and oneric.
Would be nice to get this ported (and maybe upstreamed) to Gnome 3
Thanks a lot
[...] Via | Martin Owens [...]
[...] The Lab Session Manager is a indicator which times how long you can be on the computer for, notifies you when you’re running out of time and then logs you off when your time is over. It replaces the old and unmaintained timed functionality with a modern, gtk based system tray icon and logging functionality for generating reports about who is using the computer for how long. See previous blog post here. [...]
Very cool stuff indeed!
Martin, one feature that would be nice to have is to timeout idle session, like timeoutd currently does. That would also be useful in lab situation (or shared computers) where users do not have a hard limit set for their session, but where we would like to shut off the sessions of users who would not have logged off properly before leaving. That’s actually a very common use-case. Just a suggestion.
Cheers,
EtienneG
It’s a good suggestion EtienneG, and you would do me a great favour to write it down into a bug report over here: https://bugs.launchpad.net/lab-session-manager
This allows me to keep track of everything and I can get to it in good time.