entrance: let the greeter user be configurable
This commit is contained in:
parent
4486d92901
commit
babe4d9807
|
@ -69,4 +69,7 @@ group "Entrance_Config" struct {
|
||||||
|
|
||||||
/* Use a virtual keyboard */
|
/* Use a virtual keyboard */
|
||||||
value "virtual_keyboard" uchar: 0;
|
value "virtual_keyboard" uchar: 0;
|
||||||
|
|
||||||
|
/* the user to log in with */
|
||||||
|
value "start_user" string: "entrance";
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,17 +192,30 @@ _entrance_main(const char *dname)
|
||||||
if (!_entrance_client)
|
if (!_entrance_client)
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
const char *user = NULL;
|
||||||
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
|
||||||
_entrance_client_del, NULL);
|
_entrance_client_del, NULL);
|
||||||
ecore_event_handler_add(ECORE_EXE_EVENT_ERROR,
|
ecore_event_handler_add(ECORE_EXE_EVENT_ERROR,
|
||||||
_entrance_client_error, NULL);
|
_entrance_client_error, NULL);
|
||||||
ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
|
||||||
(Ecore_Event_Handler_Cb)_entrance_client_data, NULL);
|
(Ecore_Event_Handler_Cb)_entrance_client_data, NULL);
|
||||||
|
if (entrance_config->start_user && entrance_config->start_user[0])
|
||||||
|
{
|
||||||
|
if (getpwnam(entrance_config->start_user))
|
||||||
|
user = entrance_config->start_user;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!user)
|
||||||
|
{
|
||||||
|
PT("The given user %s, is not not valid. Falling back to nobody user, possible that this wont work, set up a correct start_user in entrance.conf", entrance_config->start_user);
|
||||||
|
user = "nobody";
|
||||||
|
}
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf),
|
snprintf(buf, sizeof(buf),
|
||||||
SUDO" -u nobody "
|
SUDO" -u %s "
|
||||||
"LD_LIBRARY_PATH="PACKAGE_LIB_DIR" "
|
"LD_LIBRARY_PATH="PACKAGE_LIB_DIR" "
|
||||||
PACKAGE_BIN_DIR"/entrance_client -d %s -t %s",
|
PACKAGE_BIN_DIR"/entrance_client -d %s -t %s",
|
||||||
dname, entrance_config->theme);
|
user, dname, entrance_config->theme);
|
||||||
PT("Exec entrance_client: %s", buf);
|
PT("Exec entrance_client: %s", buf);
|
||||||
|
|
||||||
_entrance_client = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_ERROR, NULL);
|
_entrance_client = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_READ | ECORE_EXE_PIPE_ERROR, NULL);
|
||||||
|
|
|
@ -170,6 +170,7 @@ entrance_config_init()
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "elementary_profile", elm_profile, EET_T_STRING);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "elementary_profile", elm_profile, EET_T_STRING);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "virtual_keyboard", vkbd_enabled, EET_T_UCHAR);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "virtual_keyboard", vkbd_enabled, EET_T_UCHAR);
|
||||||
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "custom_conf", custom_conf, EET_T_UCHAR);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "custom_conf", custom_conf, EET_T_UCHAR);
|
||||||
|
EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Entrance_Config, "start_user", start_user, EET_T_STRING);
|
||||||
_entrance_config_descriptor = edd;
|
_entrance_config_descriptor = edd;
|
||||||
|
|
||||||
if (stat( "/var/cache/"PACKAGE"/"ENTRANCE_CONFIG_FILE, &cache) == -1)
|
if (stat( "/var/cache/"PACKAGE"/"ENTRANCE_CONFIG_FILE, &cache) == -1)
|
||||||
|
|
|
@ -37,6 +37,7 @@ struct _Entrance_Config
|
||||||
Eina_Bool autologin;
|
Eina_Bool autologin;
|
||||||
Eina_Bool custom_conf;
|
Eina_Bool custom_conf;
|
||||||
Eina_Bool vkbd_enabled;
|
Eina_Bool vkbd_enabled;
|
||||||
|
const char *start_user;
|
||||||
};
|
};
|
||||||
|
|
||||||
void entrance_config_init(void);
|
void entrance_config_init(void);
|
||||||
|
|
Loading…
Reference in New Issue