![]() |
![]() |
![]() |
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 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
); gboolean ldm_greeter_get_has_guest_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_login (LdmGreeter *greeter
,const char *username
); void ldm_greeter_login_as_guest (LdmGreeter *greeter
); 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_start_session (LdmGreeter *greeter
,const gchar *session
); 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 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 |
gboolean ldm_greeter_get_has_guest_session (LdmGreeter *greeter
);
Check if guest sessions are supported.
|
A LdmGreeter |
Returns : |
TRUE if guest sessions are supported. |
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_login (LdmGreeter *greeter
,const char *username
);
Starts the authentication procedure for a user.
|
A LdmGreeter |
|
A username |
void ldm_greeter_login_as_guest (LdmGreeter *greeter
);
Starts the authentication procedure for the guest user.
|
A LdmGreeter |
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_start_session (LdmGreeter *greeter
,const gchar *session
);
Start a session for the logged in user.
|
A LdmGreeter |
|
The session to log into or NULL to use the default. [allow-none] |
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. |