# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
+# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
+#greeter-show-remote-login=true
#user-session=default
#allow-guest=true
#guest-session=UNIMPLEMENTED
PROP_DEFAULT_SESSION_HINT,
PROP_HIDE_USERS_HINT,
PROP_SHOW_MANUAL_LOGIN_HINT,
+ PROP_SHOW_REMOTE_LOGIN_HINT,
PROP_LOCK_HINT,
PROP_HAS_GUEST_ACCOUNT_HINT,
PROP_SELECT_USER_HINT,
return g_strcmp0 (value, "true") == 0;
}
+/**
+ * lightdm_greeter_get_show_remote_login_hint:
+ * @greeter: A #LightDMGreeter
+ *
+ * Check if a remote login option should be shown. If set the GUI
+ * should provide a way for a user to log into a remote desktop server.
+ *
+ * Return value: #TRUE if a remote login option should be shown.
+ */
+gboolean
+lightdm_greeter_get_show_remote_login_hint (LightDMGreeter *greeter)
+{
+ const gchar *value;
+
+ g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE);
+ value = lightdm_greeter_get_hint (greeter, "show-remote-login");
+
+ return g_strcmp0 (value, "true") == 0;
+}
+
/**
* lightdm_greeter_get_lock_hint:
* @greeter: A #LightDMGreeter
case PROP_SHOW_MANUAL_LOGIN_HINT:
g_value_set_boolean (value, lightdm_greeter_get_show_manual_login_hint (self));
break;
+ case PROP_SHOW_REMOTE_LOGIN_HINT:
+ g_value_set_boolean (value, lightdm_greeter_get_show_remote_login_hint (self));
+ break;
case PROP_LOCK_HINT:
g_value_set_boolean (value, lightdm_greeter_get_lock_hint (self));
break;
FALSE,
G_PARAM_READABLE));
+ g_object_class_install_property (object_class,
+ PROP_SHOW_REMOTE_LOGIN_HINT,
+ g_param_spec_boolean ("show-remote-login-hint",
+ "show-remote-login-hint",
+ "Show remote login hint",
+ FALSE,
+ G_PARAM_READABLE));
+
g_object_class_install_property (object_class,
PROP_LOCK_HINT,
g_param_spec_boolean ("lock-hint",
public unowned string default_session_hint { get; }
public bool hide_users_hint { get; }
public bool show_manual_login_hint { get; }
+ public bool show_remote_login_hint { get; }
public bool lock_hint { get; }
public bool has_guest_account_hint { get; }
public unowned string select_user_hint { get; }
gboolean lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter);
+gboolean lightdm_greeter_get_show_remote_login_hint (LightDMGreeter *greeter);
+
gboolean lightdm_greeter_get_lock_hint (LightDMGreeter *greeter);
gboolean lightdm_greeter_get_has_guest_account_hint (LightDMGreeter *greeter);
QString defaultSessionHint() const;
bool hideUsersHint() const;
bool showManualLoginHint() const;
+ bool showRemoteLoginHint() const;
bool lockHint () const;
bool hasGuestAccountHint() const;
QString selectUserHint() const;
return lightdm_greeter_get_show_manual_login_hint(d->ldmGreeter);
}
+bool Greeter::showRemoteLoginHint() const
+{
+ Q_D(const Greeter);
+ return lightdm_greeter_get_show_remote_login_hint(d->ldmGreeter);
+}
+
bool Greeter::lockHint() const
{
Q_D(const Greeter);
/* TRUE if a manual login option should be shown */
gboolean greeter_show_manual_login;
+ /* TRUE if a remote login option should be shown */
+ gboolean greeter_show_remote_login;
+
/* TRUE if the greeter is a lock screen */
gboolean greeter_is_lock;
display->priv->greeter_show_manual_login = show_manual_login;
}
+void
+display_set_show_remote_login_hint (Display *display, gboolean show_remote_login)
+{
+ g_return_if_fail (display != NULL);
+ display->priv->greeter_show_remote_login = show_remote_login;
+}
+
void
display_set_lock_hint (Display *display, gboolean is_lock)
{
greeter_set_hint (display->priv->greeter, "has-guest-account", (display->priv->allow_guest && display->priv->greeter_allow_guest) ? "true" : "false");
greeter_set_hint (display->priv->greeter, "hide-users", display->priv->greeter_hide_users ? "true" : "false");
greeter_set_hint (display->priv->greeter, "show-manual-login", display->priv->greeter_show_manual_login ? "true" : "false");
+ greeter_set_hint (display->priv->greeter, "show-remote-login", display->priv->greeter_show_remote_login ? "true" : "false");
if (display->priv->greeter_is_lock)
greeter_set_hint (display->priv->greeter, "lock-screen", "true");
void display_set_show_manual_login_hint (Display *display, gboolean show_manual);
+void display_set_show_remote_login_hint (Display *display, gboolean show_remote);
+
void display_set_lock_hint (Display *display, gboolean is_lock);
void display_set_user_session (Display *display, SessionType type, const gchar *session_name);
config_set_boolean (config_get_instance (), "SeatDefaults", "allow-guest", TRUE);
if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-allow-guest"))
config_set_boolean (config_get_instance (), "SeatDefaults", "greeter-allow-guest", TRUE);
+ if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-show-remote-login"))
+ config_set_boolean (config_get_instance (), "SeatDefaults", "greeter-show-remote-login", TRUE);
if (!config_has_key (config_get_instance (), "SeatDefaults", "greeter-session"))
config_set_string (config_get_instance (), "SeatDefaults", "greeter-session", GREETER_SESSION);
if (!config_has_key (config_get_instance (), "SeatDefaults", "user-session"))
display_set_session_wrapper (display, seat_get_string_property (seat, "session-wrapper"));
display_set_hide_users_hint (display, seat_get_boolean_property (seat, "greeter-hide-users"));
display_set_show_manual_login_hint (display, seat_get_boolean_property (seat, "greeter-show-manual-login"));
+ display_set_show_remote_login_hint (display, seat_get_boolean_property (seat, "greeter-show-remote-login"));
if (is_lock)
display_set_lock_hint (display, TRUE);
display_set_allow_guest (display, seat_get_allow_guest (seat));
#define AUTOLOGIN_KEY_NAME "autologin-user"
#define HIDE_USERS_KEY_NAME "greeter-hide-users"
#define MANUAL_LOGIN_KEY_NAME "greeter-show-manual-login"
+#define REMOTE_LOGIN_KEY_NAME "greeter-show-remote-login"
#define ALLOW_GUEST_KEY_NAME "allow-guest"
#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0')
static gboolean remove = FALSE;
static gboolean hide_users = FALSE;
static gboolean show_manual_login = FALSE;
+static gboolean show_remote_login = FALSE;
static gboolean allow_guest = FALSE;
static char *session = NULL;
static char *autologin = NULL;
static char *str_hide_users = NULL;
static char *str_show_manual_login = NULL;
+static char *str_show_remote_login = NULL;
static char *str_allow_guest = NULL;
static GOptionEntry entries[] =
{ "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL },
{ "hide-users",'i', 0, G_OPTION_ARG_STRING, &str_hide_users, N_("Set greeter-hide-users to true or false"), NULL },
{ "show-manual-login",'m', 0, G_OPTION_ARG_STRING, &str_show_manual_login, N_("Set show-manual-login to true or false"), NULL },
+ { "show-remote-login",'R', 0, G_OPTION_ARG_STRING, &str_show_remote_login, N_("Set show-remote-login to true or false"), NULL },
{ "allow-guest",'l', 0, G_OPTION_ARG_STRING, &str_allow_guest, N_("Set allow-guest to true or false"), NULL },
{ NULL }
};
g_error_free (error);
return 1;
}
- if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && IS_STRING_EMPTY(str_hide_users) && IS_STRING_EMPTY(str_show_manual_login) && IS_STRING_EMPTY(str_allow_guest)) {
+ if (IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && IS_STRING_EMPTY(str_hide_users) && IS_STRING_EMPTY(str_show_manual_login) && IS_STRING_EMPTY(str_show_remote_login) && IS_STRING_EMPTY(str_allow_guest)) {
g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL));
g_option_context_free (context);
return 1;
return 1;
}
}
+ if (!(IS_STRING_EMPTY(str_show_remote_login)) && (return_code == 0)) {
+ if (str_to_bool(str_show_remote_login, &show_remote_login) == 0) {
+ return_code = update_boolean (show_remote_login, keep_old, SEATDEFAULT_KEY_GROUP, REMOTE_LOGIN_KEY_NAME, keyfile);
+ }
+ else {
+ g_printerr (N_("true and false are the only valid choices for show-remote-login\n"));
+ return 1;
+ }
+ }
if (return_code == 0) {
s_data = g_key_file_to_data (keyfile, &size, &error);