User sessions that have been idle for a specific period of time can be ended automatically. You can set different behaviour based on whether the machine is running from a battery or from mains power by setting the corresponding dconf key, then locking it.
Set automatic logout for a mains powered machine
Create a user profile in /etc/dconf/profile/user:
Create a local database for machine-wide settings in /etc/dconf/db/local.d/00-autologout:
[org/gnome/settings-daemon/plugins/power] # Set the timeout to 900 seconds when on mains power sleep-inactive-ac-timeout=900 # Set action after timeout to be logout when on mains power sleep-inactive-ac-type='logout'
Override the user's setting and prevent the user from changing it in /etc/dconf/db/local.d/locks/autologout:
# Lock automatic logout settings /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-timeout /org/gnome/settings-daemon/plugins/power/sleep-inactive-ac-type
Update the system databases:
# dconf update
The following gsettings keys are of interest:
The number of seconds that the computer needs to be inactive before it goes to sleep if it is running from AC power.
What should happen when the timeout has passed if the computer is running from AC power.
The number of seconds that the computer needs to be inactive before it goes to sleep if it is running from power.
What should happen when the timeout has passed if the computer is running from battery power.
You can run gsettings range on a key for a list of values which you can use.