Page MenuHomePhabricator

Terminology does not start on xwayland
Open, Showstopper IssuesPublic

Description

When I run terminology (in sway) with latest efl (1.21.0) I get no new window. Similar behaviour happens when running from cinnamon, but at least I get the border with blank screen inside the window. If I resize/move window, cursor and all stuff appears. Downgrading back to efl 1.20.7 fixes the above mentioned problem.
I run gdb to get some info but without any output. Feel free to ask for anything that can help locate the problem.

jozi-k created this task.Sep 20 2018, 12:47 AM
billiob added a subscriber: efl.Sep 20 2018, 12:53 AM
Herald triaged this task as Showstopper Issues priority. · View Herald TranscriptDec 4 2018, 3:23 PM

I've seen this before and (iirc) if you "unset DISPLAY" it works .. not sure why tho, could be something in elementary's detection at startup (ie: it sees DISPLAY as being set and tries to run in X11)

I've seen this before and (iirc) if you "unset DISPLAY" it works .. not sure why tho, could be something in elementary's detection at startup (ie: it sees DISPLAY as being set and tries to run in X11)

@jozi-k start terminology from another terminal please, and see if there are any error messages.

in the code in /src/lib/elementary/efl_selection_manager.c the environment variable ELM_DISPLAY takes precedence over any other. can either of you test if setting ELM_DISPLAY=wl (the other option is ELM_DISPLAY=x11) also helps?

the wayland detection code then checks for $WAYLAND_DISPLAY and the absence of $DISPLAY. so what @devilhorns wrote could be this case, which was introduced with 0a9542e2231cc8172269fba39f2173c6713c794a by one Chris Michael 😀 . however then zmike moved this code to efl_selection_manager.c with 9cf61c2f6d215e3adfa1567154a229eb49116769 with the comment:

neither of these components have fork-safe connections, so there is no benefit to calling them during quicklaunch init

so maybe a race condition?

5209    else /* ELM_DISPLAY not specified */
5210      {
5211         /* If there is a $WAYLAND_DISPLAY */
5212         if ((have_wl_display) && (!getenv("DISPLAY")))
5213           init_wl = EINA_TRUE;
5214         else /* No $WAYLAND_DISPLAY */
5215           init_wl = EINA_FALSE;
5216      }

@devilhorns Yep, works after unsetting DISPLAY.
@ProhtMeyhet It is working from another without any error messages.

raster added a subscriber: raster.Jan 15 2019, 3:42 AM

Just tried here and forced terminology to use X11 (unset WAYLAND_DISPLAY and ELM_DISPLAY terminology comes up fine in x11 mode as the only display info it has int he env is for x11). i checked with xwininfo -tree -root to see the x11 window as there in xwayland...

this is git master efl/e/terminology btw... so xwayland mode works for me.

unsetting DISPLAY will encourage e to try the wayland display instead. but still - it should work via xwayland anyway .. and does for me. :/

stefan_schmidt lowered the priority of this task from Showstopper Issues to Normal.Feb 28 2019, 2:38 AM
Herald raised the priority of this task from Normal to Showstopper Issues. · View Herald TranscriptFeb 28 2019, 2:38 AM
zmike assigned this task to devilhorns.Mar 1 2019, 7:37 AM
devilhorns removed devilhorns as the assignee of this task.Mar 1 2019, 7:57 AM
RX14 added a subscriber: RX14.Mar 14 2019, 6:28 AM
RX14 added a comment.Mar 14 2019, 6:32 AM

The workaround env -u WAYLAND_DISPLAY -u ELM_DISPLAY /usr/bin/terminology doesn't work for me. It still hangs on startup. Fortunately terminology works quite well on wayland.