[EGIT] [apps/terminology] master 01/01: fix wrong condition. CID1315743

2015-08-09 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=3738402a9dacec57407d54857a0455a66bf6cee2

commit 3738402a9dacec57407d54857a0455a66bf6cee2
Author: Boris Faure bill...@gmail.com
Date:   Sun Aug 9 14:19:50 2015 +0200

fix wrong condition. CID1315743
---
 src/bin/termiolink.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termiolink.c b/src/bin/termiolink.c
index c571eea..19923ab 100644
--- a/src/bin/termiolink.c
+++ b/src/bin/termiolink.c
@@ -180,7 +180,7 @@ _termio_link_find(Evas_Object *obj, int cx, int cy,
 
  if ((end == endmatch) ||
  ((!escaped)  (isspace(end)) 
-  ((end != '\n') || (end != '\r'
+  ((end != '\n')  (end != '\r'
{
   goforward = EINA_FALSE;
   coord_back(x2, y2, w, h);

-- 




[EGIT] [apps/terminology] master 01/01: BACKLOG_ROW_GET() should not be called with a screen value

2015-08-09 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=7af60a58c809ef605d9c11643874d2a1dcf70ac2

commit 7af60a58c809ef605d9c11643874d2a1dcf70ac2
Author: Boris Faure bill...@gmail.com
Date:   Sun Aug 9 14:10:12 2015 +0200

BACKLOG_ROW_GET() should not be called with a screen value

the backlog is independent of the screen size. Thus a single line in the
backlog can span many lines on the screen.
---
 src/bin/miniview.c |  3 ++-
 src/bin/termio.c   | 14 +-
 src/bin/termpty.c  | 28 ++--
 src/bin/termpty.h  |  2 +-
 4 files changed, 18 insertions(+), 29 deletions(-)

diff --git a/src/bin/miniview.c b/src/bin/miniview.c
index f06f5cd..7ff65ee 100644
--- a/src/bin/miniview.c
+++ b/src/bin/miniview.c
@@ -502,7 +502,8 @@ _deferred_renderer(void *data)
 {
Miniview *mv = data;
Evas_Coord ox, oy, ow, oh;
-   int history_len, wret, pos;
+   int history_len, pos;
+   ssize_t wret;
unsigned int *pixels, y;
Termcell *cells;
Termpty *ty;
diff --git a/src/bin/termio.c b/src/bin/termio.c
index 82b7972..31ddca4 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -2037,7 +2037,8 @@ termio_selection_get(Evas_Object *obj, int c1x, int c1y, 
int c2x, int c2y,
for (y = c1y; y = c2y; y++)
  {
 Termcell *cells;
-int w, last0, v, start_x, end_x;
+ssize_t w;
+int last0, v, start_x, end_x;
 
 w = 0;
 last0 = -1;
@@ -2427,7 +2428,8 @@ termio_paste_selection(Evas_Object *obj, Elm_Sel_Type 
type)
 static void
 _sel_line(Termio *sd, int cy)
 {
-   int y, w = 0;
+   int y;
+   ssize_t w = 0;
Termcell *cells;
 
termpty_backlog_lock();
@@ -2772,7 +2774,8 @@ static void
 _sel_word(Termio *sd, int cx, int cy)
 {
Termcell *cells;
-   int x, y, w = 0;
+   int x, y;
+   ssize_t w = 0;
Eina_Bool done = EINA_FALSE;
 
termpty_backlog_lock();
@@ -3183,7 +3186,7 @@ _selection_dbl_fix(Termio *sd
 {
 #if defined(SUPPORT_DBLWIDTH)
int start_x, start_y, end_x, end_y;
-   int w = 0;
+   ssize_t w = 0;
Termcell *cells;
/* Only change the end position */
 
@@ -4489,7 +4492,8 @@ _smart_apply(Evas_Object *obj)
Evas_Coord ox, oy, ow, oh;
Eina_List *l, *ln;
Termblock *blk;
-   int x, y, w, ch1 = 0, ch2 = 0, inv = 0, preedit_x = 0, preedit_y = 0;
+   int x, y, ch1 = 0, ch2 = 0, inv = 0, preedit_x = 0, preedit_y = 0;
+   ssize_t w;
 
EINA_SAFETY_ON_NULL_RETURN(sd);
evas_object_geometry_get(obj, ox, oy, ow, oh);
diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 1ed4cff..4422e82 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -711,28 +711,12 @@ add_new_ts:
 ssize_t
 termpty_row_length(Termpty *ty, int y)
 {
-   Termsave *ts;
+   ssize_t wret;
+   Termcell *cells = termpty_cellrow_get(ty, y, wret);
 
if (y = 0)
- {
-Termcell *cells;
-if (y = ty-h)
-  {
- ERR(invalid row given: %d while ty-h=%d, y, ty-h);
- return 0;
-  }
-cells = (TERMPTY_SCREEN(ty, 0, y));
-return termpty_line_length(cells, ty-w);
- }
-   if ((y  -(int)ty-backsize) || !ty-back)
- {
-ERR(invalid row given: %d; ty-back:%p ty-backsize:%zd,
-y, ty-back, ty-backsize);
-return 0;
- }
-   ts = BACKLOG_ROW_GET(ty, y);
-
-   return ts-cells ? ts-w : 0;
+ return termpty_line_length(cells, ty-w);
+   return cells ? wret : 0;
 }
 
 ssize_t
@@ -800,7 +784,7 @@ termpty_backscroll_adjust(Termpty *ty, int *scroll)
 }
 
 static Termcell*
-_termpty_cellrow_from_beacon_get(Termpty *ty, int requested_y, int *wret)
+_termpty_cellrow_from_beacon_get(Termpty *ty, int requested_y, ssize_t *wret)
 {
int backlog_y = ty-backlog_beacon.backlog_y;
int screen_y = ty-backlog_beacon.screen_y;
@@ -845,7 +829,7 @@ _termpty_cellrow_from_beacon_get(Termpty *ty, int 
requested_y, int *wret)
 }
 
 Termcell *
-termpty_cellrow_get(Termpty *ty, int y_requested, int *wret)
+termpty_cellrow_get(Termpty *ty, int y_requested, ssize_t *wret)
 {
if (y_requested = 0)
  {
diff --git a/src/bin/termpty.h b/src/bin/termpty.h
index 4abecad..b76d740 100644
--- a/src/bin/termpty.h
+++ b/src/bin/termpty.h
@@ -236,7 +236,7 @@ void   termpty_free(Termpty *ty);
 void   termpty_backlog_lock(void);
 void   termpty_backlog_unlock(void);
 
-Termcell  *termpty_cellrow_get(Termpty *ty, int y, int *wret);
+Termcell  *termpty_cellrow_get(Termpty *ty, int y, ssize_t *wret);
 ssize_t termpty_row_length(Termpty *ty, int y);
 void   termpty_write(Termpty *ty, const char *input, int len);
 void   termpty_resize(Termpty *ty, int new_w, int new_h);

-- 




[EGIT] [core/elementary] master 01/01: Add a new (failing) test for table padding

2015-08-09 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=6ec61dea669d8c48bc0a8afcbff5c5abd82cd906

commit 6ec61dea669d8c48bc0a8afcbff5c5abd82cd906
Author: Dave Andreoli d...@gurumeditation.it
Date:   Sun Aug 9 18:59:14 2015 +0200

Add a new (failing) test for table padding

This test expose a bug in table as explained in T2655
---
 src/bin/test.c   |  2 ++
 src/bin/test_table.c | 84 
 2 files changed, 86 insertions(+)

diff --git a/src/bin/test.c b/src/bin/test.c
index 96827d5..b52eeb3 100644
--- a/src/bin/test.c
+++ b/src/bin/test.c
@@ -132,6 +132,7 @@ void test_table4(void *data, Evas_Object *obj, void 
*event_info);
 void test_table5(void *data, Evas_Object *obj, void *event_info);
 void test_table6(void *data, Evas_Object *obj, void *event_info);
 void test_table7(void *data, Evas_Object *obj, void *event_info);
+void test_table8(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid2(void *data, Evas_Object *obj, void *event_info);
 void test_gengrid3(void *data, Evas_Object *obj, void *event_info);
@@ -575,6 +576,7 @@ add_tests:
ADD_TEST(NULL, Containers, Table 5, test_table5);
ADD_TEST(NULL, Containers, Table 6, test_table6);
ADD_TEST(NULL, Containers, Table 7, test_table7);
+   ADD_TEST(NULL, Containers, Table Padding, test_table8);
ADD_TEST(NULL, Containers, Layout, test_layout);
ADD_TEST(NULL, Containers, Layout 2, test_layout2);
ADD_TEST(NULL, Containers, Grid, test_grid);
diff --git a/src/bin/test_table.c b/src/bin/test_table.c
index fb05e5c..dc2c759 100644
--- a/src/bin/test_table.c
+++ b/src/bin/test_table.c
@@ -388,3 +388,87 @@ test_table7(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
 
evas_object_show(win);
 }
+
+void
+test_table8(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   Evas_Object *win, *tb, *bt;
+
+   win = elm_win_util_standard_add(table8, Table Padding);
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   tb = elm_table_add(win);
+   elm_table_padding_set(tb, 10, 10);
+   evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, tb);
+   evas_object_show(tb);
+
+   // first row
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, colspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 0, 0, 1, 1);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, colspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 1, 0, 1, 1);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, colspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 2, 0, 1, 1);
+   evas_object_show(bt);
+
+   // second row
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, colspan 3);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 0, 1, 3, 1);
+   evas_object_show(bt);
+
+   // third row
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, rowspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 0, 2, 1, 1);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, rowspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 1, 2, 1, 1);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, rowspan 2);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 2, 2, 1, 2);
+   evas_object_show(bt);
+
+   // fourth row
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, rowspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 0, 3, 1, 1);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, rowspan 1);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_table_pack(tb, bt, 1, 3, 

[EGIT] [core/enlightenment] master 01/01: Improve italian lang

2015-08-09 Thread Dave Andreoli
davemds pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=69ab6594748c1b764a875bc8a75abc4bcb46214b

commit 69ab6594748c1b764a875bc8a75abc4bcb46214b
Author: Dave Andreoli d...@gurumeditation.it
Date:   Sun Aug 9 22:52:32 2015 +0200

Improve italian lang

Abortire, abortito e, sopprattutto abortisci sono veramente di 
cattivo gusto
e suonano anche male.
Sostituti tutti con annullare o interrompere
---
 po/it.po | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/po/it.po b/po/it.po
index d7953bd..7147434 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1028,7 +1028,7 @@ msgid 
 msgstr 
 Enlightenment ha restituito un errore nello spostamentobrdei file di 
 configurazione da:br%sbrbra:br%sbrbrIl resto della scrittura è 
-stato abortito per sicurezza.br
+stato annullato per sicurezza.br
 
 #: src/bin/e_config.c:1777 src/bin/e_config.c:2421
 #: src/bin/e_config_dialog.c:279 src/bin/e_desktop_editor.c:891
@@ -1802,7 +1802,7 @@ msgstr Ritenta
 
 #: src/bin/e_fm.c:10566 src/bin/e_fm.c:10792 src/bin/e_fm.c:11770
 msgid Abort
-msgstr Abortisci
+msgstr Interrompi
 
 #: src/bin/e_fm.c:10626
 msgid No to all
@@ -2051,7 +2051,7 @@ msgid 
 Please press key combination,brbror hilightEscape/hilight to abort.
 msgstr 
 Premere la combinazione di tasti,brbro hilightEscape/hilight per 
-abortire
+annullare
 
 #: src/bin/e_grab_dialog.c:5
 #: src/modules/conf_bindings/e_int_config_mousebindings.c:7
@@ -2062,7 +2062,7 @@ msgid 
 msgstr 
 Tenere premuto il modificatore desideratobre premere un bottone del mouse, 
 o girarebruna rotella, per assegnare un'associazione.brPremere 
-hilightEscape/highlight per abortire.
+hilightEscape/highlight per annullare.
 
 #: src/bin/e_grab_dialog.c:114
 msgid Mouse Binding Combination
@@ -2078,7 +2078,7 @@ msgid 
 on this screen. Aborting startup.\n
 msgstr 
 Un'istanza precedente di Enlightenment è ancora\n
-attiva su questo schermo. Abortisco l'avvio.\n
+attiva su questo schermo. Avvio interrotto.\n
 
 #: src/bin/e_import_config_dialog.c:293
 msgid Picture Import Error
@@ -5632,7 +5632,7 @@ msgid 
 hilightEscape/hilight to abort.
 msgstr 
 Causare l'evento ACPI che si desidera impostare,brbro hilightEscape/
-hilight per abortire
+hilight per annullare
 
 #: src/modules/conf_bindings/e_int_config_edgebindings.c:5
 msgid 
@@ -5641,7 +5641,7 @@ msgid 
 or make itbrrespond to edge clicks:
 msgstr 
 Selezionare un bordo dello schermobro cliccare hilightChiudi/hilight 
-per abortire.brbrSi può anche specificare un ritardobr per questa 
+per annullare.brbrSi può anche specificare un ritardobr per questa 
 azione usando il cursore,broppure fare in modo che risponda aibrclic del 
 mouse sul bordo:
 
@@ -8601,31 +8601,31 @@ msgstr Comando personalizzato
 #: src/modules/fileman_opinfo/e_mod_main.c:105
 #, c-format
 msgid Copying is aborted
-msgstr Copiatura abortita
+msgstr Copia interrotta
 
 #: src/modules/fileman/e_fwin.c:3003
 #: src/modules/fileman_opinfo/e_mod_main.c:109
 #, c-format
 msgid Moving is aborted
-msgstr Spostamento abortito
+msgstr Spostamento interrotto
 
 #: src/modules/fileman/e_fwin.c:3007
 #: src/modules/fileman_opinfo/e_mod_main.c:113
 #, c-format
 msgid Deleting is aborted
-msgstr Eliminazione abortita
+msgstr Eliminazione interrotta
 
 #: src/modules/fileman/e_fwin.c:3011
 #: src/modules/fileman_opinfo/e_mod_main.c:117
 #, c-format
 msgid Secure deletion is aborted
-msgstr Eliminazione sicura abortita
+msgstr Eliminazione sicura interrotta
 
 #: src/modules/fileman/e_fwin.c:3015
 #: src/modules/fileman_opinfo/e_mod_main.c:121
 #, c-format
 msgid Unknown operation from slave is aborted
-msgstr Operazione sconosciuta dallo slave abortita
+msgstr Operazione sconosciuta dallo slave interrotta
 
 #: src/modules/fileman/e_fwin.c:3025
 #: src/modules/fileman_opinfo/e_mod_main.c:131

-- 




[EGIT] [website/www-content] master 01/01: Wiki page debian-start changed with summary [] by Philippe Jean Guillaumie

2015-08-09 Thread Philippe Jean Guillaumie
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=5f46e00c961efb036be04bcc2a0b64ec4a094a59

commit 5f46e00c961efb036be04bcc2a0b64ec4a094a59
Author: Philippe Jean Guillaumie bat...@sfr.fr
Date:   Sun Aug 9 13:19:59 2015 -0700

Wiki page debian-start changed with summary [] by Philippe Jean Guillaumie
---
 pages/distros/debian-start.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pages/distros/debian-start.txt b/pages/distros/debian-start.txt
index 3bc3259..5020854 100644
--- a/pages/distros/debian-start.txt
+++ b/pages/distros/debian-start.txt
@@ -15,7 +15,7 @@ cd enlight
 
 == Dependencies ==
 
-Make sure all the dependencies are installed :
+Make sure all the dependencies are installed:
 
 code bash
 sudo aptitude install \
@@ -47,7 +47,7 @@ PREFIX=/usr/local
 
 # List of the needed packages
 # To adapt to your needs
-PROJECTS=efl emotion_generic_players evas_generic_loaders elementary 
elementary enlightenment
+PROJECTS=efl emotion_generic_players evas_generic_loaders elementary 
enlightenment
 
 # Download url
 SITE= http://git.enlightenment.org/core/;

-- 




[EGIT] [apps/terminology] master 01/01: correctly fix coverity issue found in termiolink.c

2015-08-09 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=db471aec09343db564362492b199e70c590fde81

commit db471aec09343db564362492b199e70c590fde81
Author: Boris Faure bill...@gmail.com
Date:   Mon Aug 10 00:28:33 2015 +0200

correctly fix coverity issue found in termiolink.c
---
 src/bin/termiolink.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/bin/termiolink.c b/src/bin/termiolink.c
index 19923ab..8baafa1 100644
--- a/src/bin/termiolink.c
+++ b/src/bin/termiolink.c
@@ -179,8 +179,7 @@ _termio_link_find(Evas_Object *obj, int cx, int cy,
end = s[len - 2];
 
  if ((end == endmatch) ||
- ((!escaped)  (isspace(end)) 
-  ((end != '\n')  (end != '\r'
+ ((!escaped)  (isspace(end
{
   goforward = EINA_FALSE;
   coord_back(x2, y2, w, h);

-- 




[EGIT] [misc/entrance] master 02/02: fix possible segfault

2015-08-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/misc/entrance.git/commit/?id=07567ce6960769f057eebe2b13d0131d2a4493c7

commit 07567ce6960769f057eebe2b13d0131d2a4493c7
Author: Marcel Hollerbach marcel-hollerb...@t-online.de
Date:   Sat Aug 8 14:56:38 2015 +0200

fix possible segfault
---
 src/daemon/entrance_server.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/daemon/entrance_server.c b/src/daemon/entrance_server.c
index 0e30a7b..90fbe60 100644
--- a/src/daemon/entrance_server.c
+++ b/src/daemon/entrance_server.c
@@ -39,6 +39,7 @@ _entrance_server_add(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event E
 eev.event.conf_gui.enabled = EINA_TRUE;
 eev.event.conf_gui.bg.path = entrance_config-bg.path;
 eev.event.conf_gui.bg.group = entrance_config-bg.group;
+eev.event.conf_gui.theme = NULL;
 entrance_event_send(eev);
  }
PT(Sending pools);

-- 




[EGIT] [misc/entrance] master 01/02: entrance: let the greeter user be configurable

2015-08-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/misc/entrance.git/commit/?id=babe4d980704e7f6fa2a564d87bede5700d8e2c4

commit babe4d980704e7f6fa2a564d87bede5700d8e2c4
Author: Marcel Hollerbach marcel-hollerb...@t-online.de
Date:   Sat Aug 8 14:56:55 2015 +0200

entrance: let the greeter user be configurable
---
 data/entrance.conf.in|  3 +++
 src/daemon/entrance.c| 17 +++--
 src/daemon/entrance_config.c |  1 +
 src/daemon/entrance_config.h |  1 +
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/data/entrance.conf.in b/data/entrance.conf.in
index fe636dc..ac143da 100644
--- a/data/entrance.conf.in
+++ b/data/entrance.conf.in
@@ -69,4 +69,7 @@ group Entrance_Config struct {
 
 /* Use a virtual keyboard */
 value virtual_keyboard uchar: 0;
+
+/* the user to log in with */
+value start_user string: entrance;
 }
diff --git a/src/daemon/entrance.c b/src/daemon/entrance.c
index 9592cda..a1d2010 100644
--- a/src/daemon/entrance.c
+++ b/src/daemon/entrance.c
@@ -192,17 +192,30 @@ _entrance_main(const char *dname)
 if (!_entrance_client)
   {
  char buf[PATH_MAX];
+ const char *user = NULL;
  ecore_event_handler_add(ECORE_EXE_EVENT_DEL,
  _entrance_client_del, NULL);
  ecore_event_handler_add(ECORE_EXE_EVENT_ERROR,
  _entrance_client_error, NULL);
  ecore_event_handler_add(ECORE_EXE_EVENT_DATA,
  
(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),
-  SUDO -u nobody 
+  SUDO -u %s 
   LD_LIBRARY_PATH=PACKAGE_LIB_DIR 
   PACKAGE_BIN_DIR/entrance_client -d %s -t %s,
-  dname, entrance_config-theme);
+  user, dname, entrance_config-theme);
  PT(Exec entrance_client: %s, buf);
 
  _entrance_client = ecore_exe_pipe_run(buf, ECORE_EXE_PIPE_READ | 
ECORE_EXE_PIPE_ERROR, NULL);
diff --git a/src/daemon/entrance_config.c b/src/daemon/entrance_config.c
index d6fe5e9..1e0fc76 100644
--- a/src/daemon/entrance_config.c
+++ b/src/daemon/entrance_config.c
@@ -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, 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, start_user, 
start_user, EET_T_STRING);
_entrance_config_descriptor = edd;
 
if (stat( /var/cache/PACKAGE/ENTRANCE_CONFIG_FILE, cache) == -1)
diff --git a/src/daemon/entrance_config.h b/src/daemon/entrance_config.h
index 65e37db..155a687 100644
--- a/src/daemon/entrance_config.h
+++ b/src/daemon/entrance_config.h
@@ -37,6 +37,7 @@ struct _Entrance_Config
Eina_Bool autologin;
Eina_Bool custom_conf;
Eina_Bool vkbd_enabled;
+   const char *start_user;
 };
 
 void entrance_config_init(void);

--