What is TLM?

TLM is a daemon that handles user logins in a multi-user, multi-seat system by authenticating the users through PAM, and setting up, launching, and tracking user sessions.

TLM daemon itself does not include any UI for interacting with the users; any such interaction is handled through TLM's authentication plugin system (see TlmAuthPlugin). TLM can be configured to log-in a default ("guest") user when no other user is logged in at a specific seat.

TLM also exports a D-Bus API, that can be used to log in, log out and switch users on a seat.

Plugin development

Plugins should be named "libtlm-plugin-<plugin_name>.so" and they should contain a "tlm_<plugin_type>_plugin_<plugin_name>_get_type" symbol that is a function that returns a #GType of the plugin object. plugin_type is "auth" for authentication plugins and "account" for account plugins.

If Tlm has been configured with --enable-debug, plugin directory can be overriden with TLM_PLUGINS_DIR environment variable.