desklock start locked.
Command line and configuration option to have Enlightenment to start with desklock, so we can avoid a login manager and still be safe, but everything will be loaded and you get a better user experience. SVN revision: 37605
This commit is contained in:
parent
ae2d26fcb2
commit
2fa4afd3a1
|
@ -445,6 +445,7 @@ group "E_Config" struct {
|
|||
value "desklock_background" string: "theme_desklock_background";
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -664,6 +664,7 @@ group "E_Config" struct {
|
|||
value "font_hinting" int: 0;
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -1810,6 +1810,7 @@ group "E_Config" struct {
|
|||
value "font_hinting" int: 0;
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -1874,6 +1874,7 @@ group "E_Config" struct {
|
|||
value "font_hinting" int: 0;
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -1897,6 +1897,7 @@ group "E_Config" struct {
|
|||
value "font_hinting" int: 0;
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -1897,6 +1897,7 @@ group "E_Config" struct {
|
|||
value "font_hinting" int: 0;
|
||||
value "desklock_auth_method" int: 0;
|
||||
value "desklock_login_box_zone" int: -1;
|
||||
value "desklock_start_locked" int: 0;
|
||||
value "desklock_autolock_screensaver" int: 0;
|
||||
value "desklock_autolock_idle" int: 0;
|
||||
value "desklock_autolock_idle_timeout" double: 300.0000000000000000000000000;
|
||||
|
|
|
@ -538,6 +538,7 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, desklock_background, STR);
|
||||
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_start_locked, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_autolock_screensaver, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_autolock_idle, INT);
|
||||
E_CONFIG_VAL(D, T, desklock_autolock_idle_timeout, DOUBLE);
|
||||
|
@ -838,6 +839,7 @@ e_config_load(void)
|
|||
e_config->desklock_background = NULL;
|
||||
e_config->desklock_auth_method = 0;
|
||||
e_config->desklock_login_box_zone = -1;
|
||||
e_config->desklock_start_locked = 0;
|
||||
e_config->desklock_autolock_screensaver = 0;
|
||||
e_config->desklock_autolock_idle = 0;
|
||||
e_config->desklock_autolock_idle_timeout = 300.0;
|
||||
|
@ -1201,6 +1203,10 @@ e_config_load(void)
|
|||
IFCFG(0x0129);
|
||||
e_config->default_system_menu = NULL;
|
||||
IFCFGEND;
|
||||
|
||||
IFCFG(0x012a);
|
||||
e_config->desklock_start_locked = 0;
|
||||
IFCFGEND;
|
||||
|
||||
e_config->config_version = E_CONFIG_FILE_VERSION;
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme;
|
|||
/* increment this whenever a new set of config values are added but the users
|
||||
* config doesn't need to be wiped - simply new values need to be put in
|
||||
*/
|
||||
#define E_CONFIG_FILE_GENERATION 0x0129
|
||||
#define E_CONFIG_FILE_GENERATION 0x012a
|
||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION)
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
|
@ -214,6 +214,7 @@ struct _E_Config
|
|||
const char *desklock_background; // GUI
|
||||
int desklock_auth_method; // GUI
|
||||
int desklock_login_box_zone; // GUI
|
||||
int desklock_start_locked; // GUI
|
||||
int desklock_autolock_screensaver; // GUI
|
||||
int desklock_autolock_idle; // GUI
|
||||
double desklock_autolock_idle_timeout; // GUI
|
||||
|
|
228
src/bin/e_main.c
228
src/bin/e_main.c
|
@ -86,6 +86,7 @@ static void _e_main_desk_restore(E_Manager *man, E_Container *con);
|
|||
static int (*_e_main_shutdown_func[MAX_LEVEL]) (void);
|
||||
static int _e_main_level = 0;
|
||||
static int _e_cacheburst = 0;
|
||||
static Evas_Bool locked = 0;
|
||||
|
||||
static Eina_List *_e_main_idler_before_list = NULL;
|
||||
|
||||
|
@ -321,10 +322,17 @@ main(int argc, char **argv)
|
|||
"\t\tBe evil.\n"
|
||||
"\t-psychotic\n"
|
||||
"\t\tBe psychotic.\n"
|
||||
"\t-locked\n"
|
||||
"\t\tstart with desklock on, so password will be asked.\n"
|
||||
)
|
||||
);
|
||||
exit(0);
|
||||
}
|
||||
else if (!strcmp(argv[i], "-locked"))
|
||||
{
|
||||
locked = 1;
|
||||
puts("enlightenment will start with desklock on.");
|
||||
}
|
||||
}
|
||||
|
||||
/* fix up DISPLAY to be :N.0 if no .screen is in it */
|
||||
|
@ -562,6 +570,8 @@ main(int argc, char **argv)
|
|||
}
|
||||
_e_main_shutdown_push(e_config_shutdown);
|
||||
|
||||
locked |= e_config->desklock_start_locked;
|
||||
|
||||
/* set all execced stuff to pri 1 - nice. make this config later? */
|
||||
ecore_exe_run_priority_set(1);
|
||||
|
||||
|
@ -619,6 +629,16 @@ main(int argc, char **argv)
|
|||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_theme_shutdown);
|
||||
|
||||
e_init_status_set(_("Starting International Support"));
|
||||
TS("intl post");
|
||||
/* init intl system */
|
||||
if (!e_intl_post_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its intl system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_intl_post_shutdown);
|
||||
|
||||
TS("splash");
|
||||
if (!((!e_config->show_splash) || (after_restart)))
|
||||
|
@ -683,21 +703,44 @@ main(int argc, char **argv)
|
|||
ecore_evas_free(ee);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Setup Screens"));
|
||||
TS("screens");
|
||||
/* manage the root window */
|
||||
if (!_e_main_screens_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment set up window management for all the screens on your system\n"
|
||||
"failed. Perhaps another window manager is running?\n"));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(_e_main_screens_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Screensaver"));
|
||||
TS("screensaver");
|
||||
/* setup screensaver */
|
||||
if (!e_screensaver_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the X screensaver."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Setup Desklock"));
|
||||
TS("desklock");
|
||||
/* setup desklock */
|
||||
if (!e_desklock_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its desk locking system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_desklock_shutdown);
|
||||
|
||||
if (locked && ((!e_config->show_splash) && (!after_restart)))
|
||||
e_desklock_show();
|
||||
|
||||
TS("msgbus");
|
||||
/* setup e msgbus (DBUS) service */
|
||||
if (e_msgbus_init())
|
||||
_e_main_shutdown_push(e_msgbus_shutdown);
|
||||
|
||||
e_init_status_set(_("Starting International Support"));
|
||||
TS("intl post");
|
||||
/* init intl system */
|
||||
if (!e_intl_post_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its intl system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_intl_post_shutdown);
|
||||
|
||||
e_init_status_set(_("Setting up Paths"));
|
||||
TS("efreet paths");
|
||||
{
|
||||
|
@ -715,16 +758,6 @@ main(int argc, char **argv)
|
|||
efreet_icon_extension_add(".edj");
|
||||
TS("efreet paths done");
|
||||
|
||||
e_init_status_set(_("Setup Thumbnailer"));
|
||||
TS("thumb init");
|
||||
/* init the enlightenment thumbnailing system */
|
||||
if (!e_thumb_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot initialize the Thumbnailing system.\n"));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_thumb_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup System Controls"));
|
||||
TS("sys init");
|
||||
/* init the enlightenment sys command system */
|
||||
|
@ -743,45 +776,7 @@ main(int argc, char **argv)
|
|||
e_error_message_show(_("Enlightenment cannot set up its actions system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_actions_shutdown);
|
||||
e_init_status_set(_("Setup Bindings"));
|
||||
TS("bindings");
|
||||
/* init bindings system */
|
||||
if (!e_bindings_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its bindings system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_bindings_shutdown);
|
||||
e_init_status_set(_("Setup Popups"));
|
||||
TS("popup");
|
||||
/* init popup system */
|
||||
if (!e_popup_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its popup system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_popup_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Wallpaper"));
|
||||
TS("bg");
|
||||
/* init desktop background system */
|
||||
if (!e_bg_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its desktop background system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_bg_init);
|
||||
e_init_status_set(_("Setup Screens"));
|
||||
TS("screens");
|
||||
/* manage the root window */
|
||||
if (!_e_main_screens_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment set up window management for all the screens on your system\n"
|
||||
"failed. Perhaps another window manager is running?\n"));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(_e_main_screens_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Execution System"));
|
||||
TS("exec");
|
||||
/* init app system */
|
||||
|
@ -840,7 +835,7 @@ main(int argc, char **argv)
|
|||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_dnd_shutdown);
|
||||
e_init_status_set(_("Setup Grab Input HAnding"));
|
||||
e_init_status_set(_("Setup Grab Input Handing"));
|
||||
TS("grabinput");
|
||||
/* setup input grabbing co-operation system */
|
||||
if (!e_grabinput_init())
|
||||
|
@ -876,6 +871,64 @@ main(int argc, char **argv)
|
|||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_gadcon_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup DPMS"));
|
||||
TS("dpms");
|
||||
/* setup dpms */
|
||||
if (!e_dpms_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the DPMS settings."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Set Up Powersave modes"));
|
||||
TS("powersave");
|
||||
if (!e_powersave_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its powersave modes."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_powersave_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Wallpaper"));
|
||||
TS("bg");
|
||||
/* init desktop background system */
|
||||
if (!e_bg_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its desktop background system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_bg_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Mouse"));
|
||||
TS("mouse");
|
||||
/* setup mouse accel */
|
||||
if (!e_mouse_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the mouse settings."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
_e_main_shutdown_push(e_actions_shutdown);
|
||||
e_init_status_set(_("Setup Bindings"));
|
||||
TS("bindings");
|
||||
/* init bindings system */
|
||||
if (!e_bindings_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its bindings system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_bindings_shutdown);
|
||||
e_init_status_set(_("Setup Popups"));
|
||||
TS("popup");
|
||||
/* init popup system */
|
||||
if (!e_popup_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its popup system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_popup_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup Shelves"));
|
||||
TS("shelves");
|
||||
/* setup shelves */
|
||||
|
@ -886,42 +939,15 @@ main(int argc, char **argv)
|
|||
}
|
||||
_e_main_shutdown_push(e_shelf_shutdown);
|
||||
|
||||
e_init_status_set(_("Setup DPMS"));
|
||||
TS("dpms");
|
||||
/* setup dpms */
|
||||
if (!e_dpms_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the DPMS settings."));
|
||||
e_init_status_set(_("Setup Thumbnailer"));
|
||||
TS("thumb init");
|
||||
/* init the enlightenment thumbnailing system */
|
||||
if (!e_thumb_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot initialize the Thumbnailing system.\n"));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Setup Screensaver"));
|
||||
TS("screensaver");
|
||||
/* setup screensaver */
|
||||
if (!e_screensaver_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the X screensaver."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Setup Mouse"));
|
||||
TS("mouse");
|
||||
/* setup mouse accel */
|
||||
if (!e_mouse_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot configure the mouse settings."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
|
||||
e_init_status_set(_("Setup Desklock"));
|
||||
TS("desklock");
|
||||
/* setup desklock */
|
||||
if (!e_desklock_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its desk locking system."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_desklock_shutdown);
|
||||
}
|
||||
_e_main_shutdown_push(e_thumb_shutdown);
|
||||
|
||||
e_init_status_set(_("Set Up File Ordering"));
|
||||
TS("order");
|
||||
|
@ -932,15 +958,6 @@ main(int argc, char **argv)
|
|||
}
|
||||
_e_main_shutdown_push(e_order_shutdown);
|
||||
|
||||
e_init_status_set(_("Set Up Powersave modes"));
|
||||
TS("powersave");
|
||||
if (!e_powersave_init())
|
||||
{
|
||||
e_error_message_show(_("Enlightenment cannot set up its powersave modes."));
|
||||
_e_main_shutdown(-1);
|
||||
}
|
||||
_e_main_shutdown_push(e_powersave_shutdown);
|
||||
|
||||
TS("add idle enterers");
|
||||
/* add in a handler that just before we go idle we flush x - will happen after ecore_evas's idle rendering as it's after ecore_evas_init() */
|
||||
_e_main_idle_enterer_flusher = ecore_idle_enterer_add(_e_main_cb_x_flusher, NULL);
|
||||
|
@ -959,6 +976,9 @@ main(int argc, char **argv)
|
|||
if (!((!e_config->show_splash) || (after_restart)))
|
||||
{
|
||||
ecore_timer_add(16.0, _e_main_cb_startup_fake_end, NULL);
|
||||
|
||||
if (locked)
|
||||
e_desklock_show();
|
||||
}
|
||||
|
||||
e_container_all_thaw();
|
||||
|
|
|
@ -34,8 +34,9 @@ struct _E_Config_Dialog_Data
|
|||
int use_xscreensaver;
|
||||
int fmdir;
|
||||
int zone_count;
|
||||
|
||||
|
||||
/* Basic props */
|
||||
int start_locked;
|
||||
int auto_lock;
|
||||
int screensaver_lock;
|
||||
double idle_time;
|
||||
|
@ -101,6 +102,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
|
|||
if (e_config->desklock_custom_desklock_cmd)
|
||||
cfdata->custom_lock_cmd = strdup(e_config->desklock_custom_desklock_cmd);
|
||||
|
||||
cfdata->start_locked = e_config->desklock_start_locked;
|
||||
cfdata->auto_lock = e_config->desklock_autolock_idle;
|
||||
cfdata->screensaver_lock = e_config->desklock_autolock_screensaver;
|
||||
cfdata->idle_time = e_config->desklock_autolock_idle_timeout / 60;
|
||||
|
@ -142,6 +144,10 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
o = e_widget_list_add(evas, 0, 0);
|
||||
of = e_widget_framelist_add(evas, _("Automatic Locking"), 0);
|
||||
e_widget_disabled_set(of, !cfdata->use_xscreensaver);
|
||||
ow = e_widget_check_add(evas, _("Lock when Enlightenment starts"),
|
||||
&cfdata->start_locked);
|
||||
e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
|
||||
e_widget_framelist_object_append(of, ow);
|
||||
ow = e_widget_check_add(evas, _("Lock when X screensaver activates"),
|
||||
&cfdata->screensaver_lock);
|
||||
e_widget_disabled_set(ow, !cfdata->use_xscreensaver);
|
||||
|
@ -163,6 +169,7 @@ _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
static int
|
||||
_basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
e_config->desklock_start_locked = cfdata->start_locked;
|
||||
e_config->desklock_autolock_idle = cfdata->auto_lock;
|
||||
e_config->desklock_autolock_screensaver = cfdata->screensaver_lock;
|
||||
e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
|
||||
|
@ -333,6 +340,7 @@ _adv_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
|||
static int
|
||||
_adv_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
e_config->desklock_start_locked = cfdata->start_locked;
|
||||
e_config->desklock_autolock_idle = cfdata->auto_lock;
|
||||
e_config->desklock_autolock_screensaver = cfdata->screensaver_lock;
|
||||
e_config->desklock_autolock_idle_timeout = cfdata->idle_time * 60;
|
||||
|
|
Loading…
Reference in New Issue