Page MenuHomePhabricator

There doesn't seem to be an obvious way to start Enlightenment on a different seat other than seat0
Closed, ResolvedPublic



I have a logind started session where my seat is not seat0 (it's seat1 for the example)
I am trying to start Enlightenment in the same way that I can get it to start on seat1 (same variables and everything) from within this session. ( $XDG_SEAT=seat1 , $(loginctl seat-status |head -1) == seat1 )

However it seems that seat0 is hardcoded somewhere, or I do not know how to set it...
I get an error that states "ERR<1906>:elput lib/elput/elputlogind.c:521 logind_connect() seat 'seat0' differs from session seat 'seat1'"
My XDG_SEAT variable already is seat1


n3rdopolis updated the task description. (Show Details)Nov 30 2017, 8:14 PM

I just pushed a small patch which should address this issue. Essentially, if no seat name was being passed in to us, then we would always assume 'seat0'. The patch will now check for the existance of $XDG_SEAT and use that if set, if it is not set it will default back to 'seat0'. Please let me know if this completely addresses your issue.

devilhorns raised the priority of this task from Wishlist to Normal.


This seems to get Enlightenment to go further
It seems now that it is trying to use a TTY (which would usually make sense on seat0, however seat0 is the only seat that can use TTYs)

I don't know if the next two lines are related or not...

ERR<2358>:elput lib/elput/elput_logind.c:528 _logind_connect() Could not get session vt
ERR<2358>:ecore_drm2 lib/ecore_drm2/ecore_drm2_device.c:606 ecore_drm2_device_open() Could not connect to input manager
ERR<2358>:ecore_evas modules/ecore_evas/engines/drm/ecore_evas_drm.c:159 _ecore_evas_drm_init() Failed to open device
Could not create ecore_evas_drm canvas<<<< Enlightenment Error >>>>
Enlightenment cannot initialize Ecore_X!


I hashed this out as a test, I know if it's the right{F2900829} solution for that or not, ...but with this the failure is

"ERR<2323>:ecore_drm2 lib/ecore_drm2/ecore_drm2_device.c:613 ecore_drm2_device_open() Could not find drm device on seat1"

OK, it seems that this

works in addition to F2900829 (chaning src/lib/ecore_drm2/ecore_drm2_device.c).
I also did the same in src/lib/ecore_drm/ecore_drm_device.c for completeness...
Not sure about using the XDG_SEAT variable though

OK, I am able to get enlightenment to start on seat1 with this:

hi n3rdopolis, thanks for the contributions - in the future for patches to this part of efl you can directly add both devilhorns and myself as reviewers.

Looking at them now, D5710 at least needs some change.

I'd like to understand how you're trying to launch E on a non default seat. right now I don't even know how to test this.

I'm pretty sure setting a udev tag for seat on a gpu is a required first step, but I'm not sure how to proceed from there.

Simply specifying XDG_SEAT from a vt rightly breaks when systemd gets mad at trying to specify someone else's seat.

I can start bash on seat1 with

systemd-run -p PAMName=login -p User="$LOGINUSER" --setenv=XDG_SEAT=seat1 bash
n3rdopolis closed this task as Resolved.Jan 23 2018, 7:18 PM