| LightDM Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
Greeter InterfaceGreeter Interface — Make a connection to the LightDM daemon and authenticate users |
#include <lightdm.h> void (*show_message) (LightDMGreeter *greeter,const gchar *text,LightDMMessageType type); void (*show_prompt) (LightDMGreeter *greeter,const gchar *text,LightDMPromptType type); void (*authentication_complete) (LightDMGreeter *greeter); void (*autologin_timer_expired) (LightDMGreeter *greeter); enum LightDMMessageType; enum LightDMPromptType; LightDMGreeter * lightdm_greeter_new (void); gboolean lightdm_greeter_connect_sync (LightDMGreeter *greeter,GError **error); const gchar * lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter); const gchar * lightdm_greeter_get_hint (LightDMGreeter *greeter,const gchar *name); gboolean lightdm_greeter_get_has_guest_account_hint (LightDMGreeter *greeter); gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter); const gchar * lightdm_greeter_get_select_user_hint (LightDMGreeter *greeter); gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter); const gchar * lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter); gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter); gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter); void lightdm_greeter_cancel_autologin (LightDMGreeter *greeter); void lightdm_greeter_authenticate (LightDMGreeter *greeter,const char *username); void lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter); void lightdm_greeter_respond (LightDMGreeter *greeter,const gchar *response); void lightdm_greeter_cancel_authentication (LightDMGreeter *greeter); gboolean lightdm_greeter_get_in_authentication (LightDMGreeter *greeter); gboolean lightdm_greeter_get_is_authenticated (LightDMGreeter *greeter); const gchar * lightdm_greeter_get_authentication_user (LightDMGreeter *greeter); gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter,const gchar *session,GError **error);
LightDMGreeter is an object that manages the connection to the LightDM server and provides common greeter functionality.
Example 1. Example Greeter
int main ()
{
GMainLoop *main_loop;
LightDMGreeter *greeter
main_loop = g_main_loop_new ();
greeter = lightdm_greeter_new ();
g_object_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
g_object_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
// Connect to LightDM daemon
if (!lightdm_greeter_connect_sync (greeter, NULL))
return EXIT_FAILURE;
// Start authentication
lightdm_greeter_authenticate (greeter, NULL);
g_main_loop_run (main_loop);
return EXIT_SUCCESS;
}
static void show_prompt_cb (LightDMGreeter *greeter, const char *text, LightDMPromptType type)
{
// Show the user the message and prompt for some response
gchar *secret = prompt_user (text, type);
// Give the result to the user
lightdm_greeter_respond (greeter, response);
}
static void authentication_complete_cb (LightDMGreeter *greeter)
{
// Start the session
if (!lightdm_greeter_get_is_authenticated (greeter) ||
!lightdm_greeter_start_session_sync (greeter, NULL))
{
// Failed authentication, try again
lightdm_greeter_authenticate (greeter, NULL);
}
}
void (*show_message) (LightDMGreeter *greeter,const gchar *text,LightDMMessageType type);
void (*show_prompt) (LightDMGreeter *greeter,const gchar *text,LightDMPromptType type);
typedef enum {
LIGHTDM_MESSAGE_TYPE_INFO,
LIGHTDM_MESSAGE_TYPE_ERROR
} LightDMMessageType;
typedef enum {
LIGHTDM_PROMPT_TYPE_QUESTION,
LIGHTDM_PROMPT_TYPE_SECRET
} LightDMPromptType;
LightDMGreeter * lightdm_greeter_new (void);
Create a new greeter.
Returns : |
the new LightDMGreeter |
gboolean lightdm_greeter_connect_sync (LightDMGreeter *greeter,GError **error);
Connects the greeter to the display manager. Will block until connected.
const gchar * lightdm_greeter_get_default_session_hint
(LightDMGreeter *greeter);
Get the default session to use.
|
A LightDMGreeter |
Returns : |
The session name |
const gchar * lightdm_greeter_get_hint (LightDMGreeter *greeter,const gchar *name);
Get a hint.
|
A LightDMGreeter |
|
The hint name to query. |
Returns : |
The value for this hint or NULL if not set. |
gboolean lightdm_greeter_get_has_guest_account_hint
(LightDMGreeter *greeter);
Check if guest sessions are supported.
|
A LightDMGreeter |
Returns : |
TRUE if guest sessions are supported. |
gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter);
Check if user accounts should be shown.
|
A LightDMGreeter |
Returns : |
TRUE if the available users should not be shown. |
const gchar * lightdm_greeter_get_select_user_hint
(LightDMGreeter *greeter);
Get the user to select by default.
|
A LightDMGreeter |
Returns : |
A username |
gboolean lightdm_greeter_get_select_guest_hint
(LightDMGreeter *greeter);
Check if the guest account should be selected by default.
|
A LightDMGreeter |
Returns : |
TRUE if the guest account should be selected by default. |
const gchar * lightdm_greeter_get_autologin_user_hint
(LightDMGreeter *greeter);
Get the user account to automatically logg into when the timer expires.
|
A LightDMGreeter |
Returns : |
The user account to automatically log into. |
gboolean lightdm_greeter_get_autologin_guest_hint
(LightDMGreeter *greeter);
Check if the guest account should be automatically logged into when the timer expires.
|
A LightDMGreeter |
Returns : |
TRUE if the guest account should be automatically logged into. |
gint lightdm_greeter_get_autologin_timeout_hint
(LightDMGreeter *greeter);
Get the number of seconds to wait before automaitcally logging in.
|
A LightDMGreeter |
Returns : |
The number of seconds to wait before automatically logging in or 0 for no timeout. |
void lightdm_greeter_cancel_autologin (LightDMGreeter *greeter);
Cancel the automatic login.
|
A LightDMGreeter |
void lightdm_greeter_authenticate (LightDMGreeter *greeter,const char *username);
Starts the authentication procedure for a user.
|
A LightDMGreeter |
|
A username or NULL to prompt for a username. [allow-none] |
void lightdm_greeter_authenticate_as_guest
(LightDMGreeter *greeter);
Starts the authentication procedure for the guest user.
|
A LightDMGreeter |
void lightdm_greeter_respond (LightDMGreeter *greeter,const gchar *response);
Provide response to a prompt.
|
A LightDMGreeter |
|
Response to a prompt |
void lightdm_greeter_cancel_authentication
(LightDMGreeter *greeter);
Cancel the current user authentication.
|
A LightDMGreeter |
gboolean lightdm_greeter_get_in_authentication
(LightDMGreeter *greeter);
Checks if the greeter is in the process of authenticating.
|
A LightDMGreeter |
Returns : |
TRUE if the greeter is authenticating a user. |
gboolean lightdm_greeter_get_is_authenticated
(LightDMGreeter *greeter);
Checks if the greeter has successfully authenticated.
|
A LightDMGreeter |
Returns : |
TRUE if the greeter is authenticated for login. |
const gchar * lightdm_greeter_get_authentication_user
(LightDMGreeter *greeter);
Get the user that is being authenticated.
|
A LightDMGreeter |
Returns : |
The username of the authentication user being authenticated or NULL if no authentication in progress. |
gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter,const gchar *session,GError **error);
Start a session for the authenticated user.
|
A LightDMGreeter |
|
The session to log into or NULL to use the default. [allow-none] |
|
return location for a GError, or NULL
|
Returns : |
TRUE if the session was started. |