| LightDM Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | Signals | ||||
#include <lightdm/greeter.h> struct LdmGreeter; LdmGreeter * ldm_greeter_new (void); gboolean ldm_greeter_connect_to_server (LdmGreeter *greeter); const gchar * ldm_greeter_get_hostname (LdmGreeter *greeter); const gchar * ldm_greeter_get_theme (LdmGreeter *greeter); gchar * ldm_greeter_get_string_property (LdmGreeter *greeter,const gchar *name); gint ldm_greeter_get_integer_property (LdmGreeter *greeter,const gchar *name); gboolean ldm_greeter_get_boolean_property (LdmGreeter *greeter,const gchar *name); gint ldm_greeter_get_num_users (LdmGreeter *greeter); const GList * ldm_greeter_get_users (LdmGreeter *greeter); const LdmUser * ldm_greeter_get_user_by_name (LdmGreeter *greeter,const gchar *username); const gchar * ldm_greeter_get_default_language (LdmGreeter *greeter); const GList * ldm_greeter_get_languages (LdmGreeter *greeter); const gchar * ldm_greeter_get_default_layout (LdmGreeter *greeter); const GList * ldm_greeter_get_layouts (LdmGreeter *greeter); const gchar * ldm_greeter_get_layout (LdmGreeter *greeter); void ldm_greeter_set_layout (LdmGreeter *greeter,const gchar *layout); const GList * ldm_greeter_get_sessions (LdmGreeter *greeter); const gchar * ldm_greeter_get_default_session (LdmGreeter *greeter); const gchar * ldm_greeter_get_timed_login_user (LdmGreeter *greeter); gint ldm_greeter_get_timed_login_delay (LdmGreeter *greeter); void ldm_greeter_cancel_timed_login (LdmGreeter *greeter); void ldm_greeter_start_authentication (LdmGreeter *greeter,const char *username); void ldm_greeter_provide_secret (LdmGreeter *greeter,const gchar *secret); void ldm_greeter_cancel_authentication (LdmGreeter *greeter); gboolean ldm_greeter_get_in_authentication (LdmGreeter *greeter); gboolean ldm_greeter_get_is_authenticated (LdmGreeter *greeter); const gchar * ldm_greeter_get_authentication_user (LdmGreeter *greeter); void ldm_greeter_login (LdmGreeter *greeter,const gchar *username,const gchar *session,const gchar *language); void ldm_greeter_login_with_defaults (LdmGreeter *greeter,const gchar *username); gboolean ldm_greeter_get_can_suspend (LdmGreeter *greeter); void ldm_greeter_suspend (LdmGreeter *greeter); gboolean ldm_greeter_get_can_hibernate (LdmGreeter *greeter); void ldm_greeter_hibernate (LdmGreeter *greeter); gboolean ldm_greeter_get_can_restart (LdmGreeter *greeter); void ldm_greeter_restart (LdmGreeter *greeter); gboolean ldm_greeter_get_can_shutdown (LdmGreeter *greeter); void ldm_greeter_shutdown (LdmGreeter *greeter); gboolean ldm_greeter_get_user_defaults (LdmGreeter *greeter,const gchar *username,gchar **language,gchar **layout,gchar **session);
"authentication-user" gchar* : Read "can-hibernate" gboolean : Read "can-restart" gboolean : Read "can-shutdown" gboolean : Read "can-suspend" gboolean : Read "default-session" gchar* : Read / Write "hostname" gchar* : Read "in-authentication" gboolean : Read "is-authenticated" gboolean : Read "layout" gchar* : Read / Write "login-delay" gint : Read "num-users" gint : Read "timed-login-user" gchar* : Read
"authentication-complete" :Run Last"connected" :Run Last"quit" :Run Last"show-error" :Run Last"show-message" :Run Last"show-prompt" :Run Last"timed-login" :Run Last"user-added" :Run Last"user-changed" :Run Last"user-removed" :Run Last
LdmGreeter is an object that manages the connection to the LightDM server and provides common greeter functionality.
To connect to the display manager instanciate a LdmGreeter object from inside the greeter process:
Example 1. Connecting to the display manager
LdmGreeter *greeter = ldm_greeter_new ();
if (!ldm_greeter_connect (LDM_GREETER (greeter))) {
// Log an error
exit (0);
}
Information on how to connect to the display manager is passed using environment variables.
Once connected, start an authentication conversation like this:
Example 2. Example Authorization Conversation
static void show_prompt_cb (LdmGreeter *greeter, const char *text)
{
// Show the user the message and prompt for some response
gchar *secret = prompt_user (text);
// Give the result to the user
ldm_greeter_provide_secret (greeter, secret);
}
static void authentication_complete_cb (LdmGreeter *greeter)
{
if (ldm_greeter_get_is_authenticated (greeter)) {
// Log in to this session.
ldm_greeter_login (greeter, ldm_greeter_get_authentication_user (greeter), ldm_greeter_get_default_session (greeter));
}
else {
// Display a warning and reset the greeter
reset_login_screen ();
}
}
static void quit_cb (LdmGreeter *greeter)
{
// Clean up
// ...
exit (0);
}
g_object_connect (G_OBJECT (greeter), "show-prompt", G_CALLBACK (show_prompt_cb), NULL);
g_object_connect (G_OBJECT (greeter), "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL);
g_object_connect (G_OBJECT (greeter), "quit", G_CALLBACK (quit_cb), NULL);
LdmGreeter * ldm_greeter_new (void);
Create a new greeter.
Returns : |
the new LdmGreeter |
gboolean ldm_greeter_connect_to_server (LdmGreeter *greeter);
Connects the greeter to the display manager.
|
The greeter to connect |
Returns : |
TRUE if successfully connected |
const gchar * ldm_greeter_get_hostname (LdmGreeter *greeter);
|
a LdmGreeter |
Returns : |
The host this greeter is displaying |
const gchar * ldm_greeter_get_theme (LdmGreeter *greeter);
|
a LdmGreeter |
Returns : |
The theme this greeter is using |
gchar * ldm_greeter_get_string_property (LdmGreeter *greeter,const gchar *name);
|
a LdmGreeter |
|
the name of the property to get |
Returns : |
The value of this property or NULL if it is not defined |
gint ldm_greeter_get_integer_property (LdmGreeter *greeter,const gchar *name);
|
a LdmGreeter |
|
the name of the property to get |
Returns : |
The value of this property or 0 if it is not defined |
gboolean ldm_greeter_get_boolean_property (LdmGreeter *greeter,const gchar *name);
|
a LdmGreeter |
|
the name of the property to get |
Returns : |
The value of this property or FALSE if it is not defined |
gint ldm_greeter_get_num_users (LdmGreeter *greeter);
|
a LdmGreeter |
Returns : |
The number of users able to log in |
const GList * ldm_greeter_get_users (LdmGreeter *greeter);
Get a list of users to present to the user. This list may be a subset of the available users and may be empty depending on the server configuration.
|
A LdmGreeter |
Returns : |
A list of LdmUser that should be presented to the user. [element-type LdmUser] |
const LdmUser * ldm_greeter_get_user_by_name (LdmGreeter *greeter,const gchar *username);
Get infomation about a given user or NULL if this user doesn't exist.
|
A LdmGreeter |
|
Name of user to get. |
Returns : |
A LdmUser entry for the given user. [allow-none] |
const gchar * ldm_greeter_get_default_language (LdmGreeter *greeter);
Get the default language.
|
A LdmGreeter |
Returns : |
The default language. |
const GList * ldm_greeter_get_languages (LdmGreeter *greeter);
Get a list of languages to present to the user.
|
A LdmGreeter |
Returns : |
A list of LdmLanguage that should be presented to the user. [element-type LdmLanguage] |
const gchar * ldm_greeter_get_default_layout (LdmGreeter *greeter);
const GList * ldm_greeter_get_layouts (LdmGreeter *greeter);
Get a list of keyboard layouts to present to the user.
|
A LdmGreeter |
Returns : |
A list of LdmLayout that should be presented to the user. [element-type LdmLayout] |
const gchar * ldm_greeter_get_layout (LdmGreeter *greeter);
Get the current keyboard layout.
|
A LdmGreeter |
Returns : |
The currently active layout for this user. |
void ldm_greeter_set_layout (LdmGreeter *greeter,const gchar *layout);
Set the layout for this session.
|
A LdmGreeter |
|
The layout to use |
const GList * ldm_greeter_get_sessions (LdmGreeter *greeter);
Get the available sessions.
|
A LdmGreeter |
Returns : |
A list of LdmSession. [element-type LdmSession] |
const gchar * ldm_greeter_get_default_session (LdmGreeter *greeter);
Get the default session to use.
|
A LdmGreeter |
Returns : |
The session name |
const gchar * ldm_greeter_get_timed_login_user (LdmGreeter *greeter);
Get the user to log in by as default.
|
A LdmGreeter |
Returns : |
A username |
gint ldm_greeter_get_timed_login_delay (LdmGreeter *greeter);
Get the number of seconds to wait until logging in as the default user.
|
A LdmGreeter |
Returns : |
The number of seconds before logging in as the default user |
void ldm_greeter_cancel_timed_login (LdmGreeter *greeter);
Cancel the login as the default user.
|
A LdmGreeter |
void ldm_greeter_start_authentication (LdmGreeter *greeter,const char *username);
Starts the authentication procedure for a user.
|
A LdmGreeter |
|
A username |
void ldm_greeter_provide_secret (LdmGreeter *greeter,const gchar *secret);
Provide secret information from a prompt.
|
A LdmGreeter |
|
Response to a prompt |
void ldm_greeter_cancel_authentication (LdmGreeter *greeter);
Cancel the current user authentication.
|
A LdmGreeter |
gboolean ldm_greeter_get_in_authentication (LdmGreeter *greeter);
Checks if the greeter is in the process of authenticating.
|
A LdmGreeter |
Returns : |
TRUE if the greeter is authenticating a user. |
gboolean ldm_greeter_get_is_authenticated (LdmGreeter *greeter);
Checks if the greeter has successfully authenticated.
|
A LdmGreeter |
Returns : |
TRUE if the greeter is authenticated for login. |
const gchar * ldm_greeter_get_authentication_user (LdmGreeter *greeter);
Get the user that is being authenticated.
|
A LdmGreeter |
Returns : |
The username of the authentication user being authenticated or NULL if no authentication in progress. |
void ldm_greeter_login (LdmGreeter *greeter,const gchar *username,const gchar *session,const gchar *language);
Login a user to a session.
|
A LdmGreeter |
|
The user to log in as |
|
The session to log into or NULL to use the default. [allow-none] |
|
The language to use or NULL to use the default. [allow-none] |
void ldm_greeter_login_with_defaults (LdmGreeter *greeter,const gchar *username);
Login a user to a session using default settings for that user.
|
A LdmGreeter |
|
The user to log in as |
gboolean ldm_greeter_get_can_suspend (LdmGreeter *greeter);
Checks if the greeter is authorized to do a system suspend.
|
A LdmGreeter |
Returns : |
TRUE if the greeter can suspend the system |
void ldm_greeter_suspend (LdmGreeter *greeter);
Triggers a system suspend.
|
A LdmGreeter |
gboolean ldm_greeter_get_can_hibernate (LdmGreeter *greeter);
Checks if the greeter is authorized to do a system hibernate.
|
A LdmGreeter |
Returns : |
TRUE if the greeter can hibernate the system |
void ldm_greeter_hibernate (LdmGreeter *greeter);
Triggers a system hibernate.
|
A LdmGreeter |
gboolean ldm_greeter_get_can_restart (LdmGreeter *greeter);
Checks if the greeter is authorized to do a system restart.
|
A LdmGreeter |
Returns : |
TRUE if the greeter can restart the system |
void ldm_greeter_restart (LdmGreeter *greeter);
Triggers a system restart.
|
A LdmGreeter |
gboolean ldm_greeter_get_can_shutdown (LdmGreeter *greeter);
Checks if the greeter is authorized to do a system shutdown.
|
A LdmGreeter |
Returns : |
TRUE if the greeter can shutdown the system |
void ldm_greeter_shutdown (LdmGreeter *greeter);
Triggers a system shutdown.
|
A LdmGreeter |
gboolean ldm_greeter_get_user_defaults (LdmGreeter *greeter,const gchar *username,gchar **language,gchar **layout,gchar **session);
Get the default settings for a given user. If the user does not exist FALSE is returned and language, layout and session are not set.
|
A LdmGreeter |
|
The user to check |
|
Default language for this user. [out] |
|
Default keyboard layout for this user. [out] |
|
Default session for this user. [out] |
Returns : |
TRUE if this user exists. |
"authentication-user" property"authentication-user" gchar* : Read
The user being authenticated.
Default value: NULL
"can-hibernate" property"can-hibernate" gboolean : Read
TRUE if allowed to hibernate the system.
Default value: FALSE
"can-restart" property"can-restart" gboolean : Read
TRUE if allowed to restart the system.
Default value: FALSE
"can-shutdown" property"can-shutdown" gboolean : Read
TRUE if allowed to shutdown the system.
Default value: FALSE
"can-suspend" property"can-suspend" gboolean : Read
TRUE if allowed to suspend the system.
Default value: FALSE
"default-session" property"default-session" gchar* : Read / Write
Default session.
Default value: NULL
"hostname" property"hostname" gchar* : Read
Hostname displaying greeter for.
Default value: NULL
"in-authentication" property"in-authentication" gboolean : Read
TRUE if a user is being authenticated.
Default value: FALSE
"is-authenticated" property"is-authenticated" gboolean : Read
TRUE if the selected user is authenticated.
Default value: FALSE
"login-delay" property"login-delay" gint : Read
Number of seconds until logging in as default user.
Default value: 0
"num-users" property"num-users" gint : Read
Number of login users.
Allowed values: >= 0
Default value: 0
"timed-login-user" property"timed-login-user" gchar* : Read
User to login as when timed expires.
Default value: NULL
"authentication-complete" signalvoid user_function (LdmGreeter *greeter,
gpointer user_data) : Run Last
The ::authentication-complete signal gets emitted when the greeter has completed authentication.
Call ldm_greeter_get_is_authenticated() to check if the authentication
was successful.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |
"connected" signalvoid user_function (LdmGreeter *greeter,
gpointer user_data) : Run Last
The ::connected signal gets emitted when the greeter connects to the LightDM server.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |
"quit" signalvoid user_function (LdmGreeter *greeter,
gpointer user_data) : Run Last
The ::quit signal gets emitted when the greeter should exit.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |
"show-error" signalvoid user_function (LdmGreeter *greeter,
gchar *text,
gpointer user_data) : Run Last
The ::show-error signal gets emitted when the greeter should show an error message to the user.
|
A LdmGreeter |
|
Message text |
|
user data set when the signal handler was connected. |
"show-message" signalvoid user_function (LdmGreeter *greeter,
gchar *text,
gpointer user_data) : Run Last
The ::show-message signal gets emitted when the greeter should show an informational message to the user.
|
A LdmGreeter |
|
Message text |
|
user data set when the signal handler was connected. |
"show-prompt" signalvoid user_function (LdmGreeter *greeter,
gchar *text,
gpointer user_data) : Run Last
The ::show-prompt signal gets emitted when the greeter should show a prompt to the user. The given text should be displayed and an input field for the user to provide a response.
Call ldm_greeter_provide_secret() with the resultant input or
ldm_greeter_cancel_authentication() to abort the authentication.
|
A LdmGreeter |
|
Prompt text |
|
user data set when the signal handler was connected. |
"timed-login" signalvoid user_function (LdmGreeter *greeter,
gchar *username,
gpointer user_data) : Run Last
The ::timed-login signal gets emitted when the default user timer has expired.
|
A LdmGreeter |
|
A username |
|
user data set when the signal handler was connected. |
"user-added" signalvoid user_function (LdmGreeter *greeter,
LdmUser *arg1,
gpointer user_data) : Run Last
The ::user-added signal gets emitted when a user account is created.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |
"user-changed" signalvoid user_function (LdmGreeter *greeter,
LdmUser *arg1,
gpointer user_data) : Run Last
The ::user-changed signal gets emitted when a user account is modified.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |
"user-removed" signalvoid user_function (LdmGreeter *greeter,
LdmUser *arg1,
gpointer user_data) : Run Last
The ::user-removed signal gets emitted when a user account is removed.
|
A LdmGreeter |
|
user data set when the signal handler was connected. |