![]() |
![]() |
![]() |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
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.
|
The greeter to connect |
|
return location for a GError, or NULL
|
Returns : |
TRUE if successfully 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. |